Skip to content

ShiZhuang1993/PDFView

Repository files navigation

原著:https://github.com/voghDev/PdfViewPager#usage

本人练习写 做了一下AndroidX适配

安装:

在您的project / build.gradle中添加这一行

allprojects { repositories { ... maven { url 'https://jitpack.io' } } }

在您的app / build.gradle中添加这一行

dependencies { implementation 'com.github.ShiZhuang1993:PDFView:1.0' }

用法:

本地资源的PDF

1.-如果您的PDF位于资产目录中,则将资产复制到缓存目录

CopyAsset copyAsset = new CopyAssetThreadImpl(context, new Handler()); copyAsset.copy(asset, new File(getCacheDir(), "sample.pdf").getAbsolutePath());

2a。- 通过资产中的 PDF文件创建PDFViewPager(请参阅示例)

pdfViewPager = new PDFViewPager(this, "sample.pdf");

2b。-直接在XML布局上声明

它将自动具有缩放和平移功能

<es.voghdev.pdfviewpager.library.PDFViewPager android:id="@+id/pdfViewPager" android:layout_width="match_parent" android:layout_height="match_parent" app:assetFileName="sample.pdf"/>

SD卡上的PDF

1.-创建一个PDFViewPager对象,传递SD卡中的文件位置

PDFViewPager pdfViewPager = new PDFViewPager(context, getPdfPathOnSDCard());

protected String getPdfPathOnSDCard() { File f = new File(getExternalFilesDir("pdf"), "adobe.pdf"); return f.getAbsolutePath(); }

2.-别忘了在onDestroy中释放适配器

@Override
protected void onDestroy() {
    super.onDestroy();

    ((PDFPagerAdapter) pdfViewPager.getAdapter()).close();
}

URl上的PDF

1 .-添加INTERNET,READ_EXTERNAL_STORAGE以及WRITE_EXTERNAL_STORAGE权限上的AndroidManifest.xml

2.-使您的Activity或Fragment实现DownloadFile.Listener

public class RemotePDFActivity extends AppCompatActivity implements DownloadFile.Listener {

3.-创建一个RemotePDFViewPager对象

String url = "https://web.stanford.edu/~xgzhou/zhou_book2017.pdf";

RemotePDFViewPager remotePDFViewPager = new RemotePDFViewPager(context, url, this);

4.-配置相应的回调,并将在每种情况下调用它们。

@Override public void onSuccess(String url, String destinationPath) { // That's the positive case. PDF Download went fine

adapter = new PDFPagerAdapter(this, "AdobeXMLFormsSamples.pdf");
remotePDFViewPager.setAdapter(adapter);
setContentView(remotePDFViewPager);

}

@Override public void onFailure(Exception e) { // This will be called if download fails }

@Override public void onProgressUpdate(int progress, int total) { // You will get download progress here // Always on UI Thread so feel free to update your views here }

5.-不要忘记在onDestroy中关闭适配器以释放所有资源

@Override protected void onDestroy() { super.onDestroy();

adapter.close();

}

在Kotlin中的用法

您可能会发现,该库在Kotlin编程语言中完全可用。您可以在此处找到示例代码。

只需像在Java中那样将库作为gradle依赖项导入即可。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages