Skip to content

bubian/PDF-load

Repository files navigation

PDF-load

PDF-load是一个用于浏览PDF文档的开源库,支持加载本地PDF文档,网络pdf文档。开源库提供了两种加载方式。 可以根据项目具体情况选择。

说明

LibFileX5库不仅支持PDF打开,还支持pptx,docx,xlsx,音视频等,一共支持几十种,详细查看腾讯X5官方文档。

博客

关于PDF加载方方案对比可以参考我的博文:【总结】- PDF解决方案

配置
  • 使用LibPdf

      implementation 'com.pds:pdf-load:1.0.2'
    
  • 使用LibFileX5

      implementation 'com.pds:file-x5:1.0.3'
    
LibPdf 基于AndroidPdfViewer

使用AndroidPdfViewer能够很好的加载PDF文档,但是会增加apk的体积,自己在使用的时候,包体积大概增加3.5M。

效果如下:

图片描述文字

  • 加载网络PDF

      private void displayFromUrl(String url) {
          pdfFileName = FileUtils.getFileNameByUrl(url);
          pdfView.fromUrl(url)
                  .defaultPage(pageNumber)
                  .onPageChange(this)
                  .enableAnnotationRendering(true)
                  .onLoad(this)
                  .scrollHandle(new DefaultScrollHandle(this))
                  .spacing(10)
                  .onPageError(this);
          pdfView.enableCache(true)
                  .useDefaultProgressView().go();
    

    }

  • 直接加载Asset,本地文件,参考AndroidPdfViewer

  • 使用默认进度条

    LibPdf支持进度显示,LibPdf提供了默认的进度View,即在顶部显示类似加载网页一样的进度条,调用useDefaultProgressView方法即可。

  • 自定义进度条

    LibPdf支持自定义进度条,调用addCustomProgress方法加入自己的进度View。

更多请参考demo

LibFileX5 基于腾讯X5浏览器

如果项目中使用了腾讯X5引擎,那么可以直接使用pdf-x5库浏览PDF,apk体积基本没有什么增加,如果项目中没有 使用X5引擎,要用pdf-x5加载PDF,那么需要先集成X5引擎,开源库中的web库提供的简单的X5集成。

  • 使用Tbs加载:
// 添加到你的布局中,或者添加到布局文件中,然后
X5PDFView pdfView = new X5PDFView(this); 
pdfView.loadPDFromUrl(url);
  • 使用QbSdk加载:

    查看demo中的QBX5Activity文件。 QbSdk支持很多种文件格式。

    使用QbSdk需要在AndroidManifest.xml配置一下内容

       <provider
          android:name="com.tencent.smtt.utils.FileProvider"
          android:authorities="${applicationId}.provider"
          android:exported="false"
          android:grantUriPermissions="true">
          <meta-data
              android:name="android.support.FILE_PROVIDER_PATHS"
              android:resource="@xml/x5webview_file_paths" />
      </provider>
    

x5webview_file_paths.xml

        <?xml version="1.0" encoding="utf-8"?>
            <paths>
            <external-path name="sdcard" path="."/>
        </paths>

效果和上面差不多。

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages