AndroidPdfHelper

Introduction: 一个基于 Android PdfRenderer 实现的 PDF 预览组件,支持对 PDF 文件的分页切换、放大缩小、拖动定位等操作。A PDF preview component based on Android pdfRenderer, which supports paging switching, zooming in and out, dragging and positioning of PDF files.
More: Author   ReportBugs   OfficialWebsite   
Tags:

一个基于 Android PdfRenderer 实现的 PDF 预览组件,支持对 PDF 文件的分页切换、放大缩小、拖动定位等操作。
A PDF preview component based on Android pdfRenderer, which supports paging switching, zooming in and out, dragging and positioning of PDF files.

特性

  1. 基于 PdfRenderer 实现,不同于其它第三方库,占用包体小
  2. 支持 PDF 文件的上下页切换
  3. 支持 PDF 单页的放大缩小查看
  4. 支持设置文件预览清晰度
  5. 支持自定义控制栏样式
  6. 支持 AndroidX

效果预览

如何使用

在项目根目录的 build.gradle 添加:

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

在项目的 build.gradle 添加如下依赖:

implementation 'com.github.GitHubZJY:AndroidPdfHelper:v1.0.0'

1.以 View 的方式调用

<com.zjy.pdfview.PdfView
        android:id="@+id/pdf_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

</com.zjy.pdfview.PdfView>

在代码中初始化 PdfView

PdfView pdfView = findViewById(R.id.pdf_view);

  预览在线 PDF 文件:

pdfView.loadPdf("http://.....xx.pdf");

  预览 asset 文件:

pdfView.loadPdf("file:///android_asset/test.pdf");

  自定义预览操作条: 首先继承于 AbsControllerBar, 重写 getView 方法返回自定义的视图

public class CustomControllerBar extends AbsControllerBar {
    public View getView() {
        //...
    }
}

通过 setPDFController 设置自定义的 Controller 即可

CustomControllerBar controllerBar = new CustomControllerBar(this);
pdfView.setPDFController(controllerBar);

2.以页面方式调起

以页面的形式,自带了默认的顶部标题栏,适配 Android 5.0 以下,会自动下载并调用浏览器打开 预览在线 PDF 文件:

PdfPreviewUtils.previewPdf(context, "http://.....xx.pdf");

  预览 asset 文件:

PdfPreviewUtils.previewPdf(context, "file:///android_asset/test.pdf");

 

3.设置预览清晰度.

<com.zjy.pdfview.PdfView
    android:id="@+id/pdf_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:quality="medium">

</com.zjy.pdfview.PdfView>

通过设置 quality 属性即可,目前一共有低、中、高三种清晰度,如下:

高清晰度:high
中等清晰度:medium
低清晰度:low

 

其他

本库基于 PdfRenderer 实现,目前支持在线或本地 pdf 文件预览,另外还支持侧边导航滑块,可定位到任意一页,双指拖拽或双击可对单页进行放大缩小控制。 由于 PdfRenderer 提供的支持有限,主要还是在于预览在线和本地 PDF 文件,但优点在于其体积小,后续会继续更新,提供更多 PDF 预览方面的功能,欢迎 issue 和 star~

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools