MCPcopy Index your code
hub / github.com/GitHubZJY/AndroidPdfHelper

github.com/GitHubZJY/AndroidPdfHelper @v1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.2 ↗ · + Follow
241 symbols 552 edges 28 files 44 documented · 18%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AndroidPdfHelper

一个基于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~

Extension points exported contracts — how you extend this code

IDownloadCallback (Interface)
Date: 2021/1/26 Author: Yang Describe: [4 implementers]
pdfview/src/main/java/com/zjy/pdfview/download/IDownloadCallback.java
IPDFController (Interface)
Date: 2021/3/19 Author: Yang Describe: PDF控制栏接口 [2 implementers]
pdfview/src/main/java/com/zjy/pdfview/widget/IPDFController.java
PagerChangedListener (Interface)
(no doc) [1 implementers]
pdfview/src/main/java/com/zjy/pdfview/utils/layoutmanager/PagerChangedListener.java
LoadLayoutListener (Interface)
(no doc)
pdfview/src/main/java/com/zjy/pdfview/widget/PdfLoadingLayout.java
ScrollSlideListener (Interface)
(no doc)
pdfview/src/main/java/com/zjy/pdfview/widget/ScrollSlider.java

Core symbols most depended-on inside this repo

get
called by 13
pdfview/src/main/java/com/zjy/pdfview/utils/ReflectUtils.java
reflect
called by 6
pdfview/src/main/java/com/zjy/pdfview/utils/ReflectUtils.java
type
called by 6
pdfview/src/main/java/com/zjy/pdfview/utils/ReflectUtils.java
wrapper
called by 6
pdfview/src/main/java/com/zjy/pdfview/utils/ReflectUtils.java
logError
called by 5
pdfview/src/main/java/com/zjy/pdfview/utils/PdfLog.java
dip2px
called by 5
pdfview/src/main/java/com/zjy/pdfview/widget/PDFControllerBar.java
dip2px
called by 5
app/src/main/java/com/zjy/androidpdfhelper/CustomControllerBar.java
scrollToPosition
called by 4
pdfview/src/main/java/com/zjy/pdfview/PdfView.java

Shape

Method 203
Class 32
Interface 6

Languages

Java100%

Modules by API surface

pdfview/src/main/java/com/zjy/pdfview/utils/ReflectUtils.java31 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/ScaleImageView.java29 symbols
pdfview/src/main/java/com/zjy/pdfview/PdfView.java28 symbols
pdfview/src/main/java/com/zjy/pdfview/utils/layoutmanager/MyPagerSnapHelper.java13 symbols
pdfview/src/main/java/com/zjy/pdfview/utils/layoutmanager/PageLayoutManager.java12 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/AbsControllerBar.java11 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/PdfLoadingLayout.java10 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/ScrollSlider.java8 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/PDFControllerBar.java8 symbols
pdfview/src/main/java/com/zjy/pdfview/widget/LoadingView.java8 symbols
pdfview/src/main/java/com/zjy/pdfview/download/DownloadService.java8 symbols
pdfview/src/main/java/com/zjy/pdfview/adapter/PdfPageAdapter.java8 symbols

For agents

$ claude mcp add AndroidPdfHelper \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact