pdf

  
一个用于在应用内部添加 PDF 查看功能的库。
最新更新 稳定版 候选发布版 Beta 版 Alpha 版
2025 年 5 月 7 日 - - - 1.0.0-alpha09

声明依赖项

要添加对 pdf 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。有关详细信息,请阅读Google 的 Maven 代码库

在应用的 build.gradle 文件或模块中添加所需工件的依赖项

Groovy

dependencies {
    implementation "androidx.pdf:pdf-viewer-fragment:1.0.0-alpha09"
}

Kotlin

dependencies {
    implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha09")
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或对改进此库有任何想法,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为现有问题投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

此工件没有发布说明。

版本 1.0

版本 1.0.0-alpha09

2025 年 5 月 7 日

androidx.pdf:pdf-*:1.0.0-alpha09 已发布。版本 1.0.0-alpha09 包含这些提交

主要变更

  • 代码库进行了重大重构,现在完全用 Kotlin 编写,利用了协程和 ViewModel。这包括 PdfViewerFragment 的重新实现。此版本不包含任何新的 API 或功能。

已知问题

  • 快速滚动条和页面指示器缺少阴影效果。
  • 单页 PDF 文档可能并非总是居中并缩放至视图宽度。

API 更改

  • 使用 @StyleRes 注释 containerStyleResId。 (I88d85)

版本 1.0.0-alpha08

2025 年 3 月 12 日

androidx.pdf:pdf-document-service:1.0.0-alpha08androidx.pdf:pdf-viewer:1.0.0-alpha08androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08 已发布。版本 1.0.0-alpha08 包含这些提交

错误修复

  • 解决了由于缩放差异导致不同 Android 设备之间选择菜单位置不一致的问题。选择菜单位置现在在所有设备上保持一致。
  • 在配置更改等情况下,片段重新创建时快速滚动条和页面指示器的位置已对齐。

版本 1.0.0-alpha07

2025 年 2 月 26 日

androidx.pdf:pdf-document-service:1.0.0-alpha07androidx.pdf:pdf-viewer:1.0.0-alpha07androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07 已发布。版本 1.0.0-alpha07 包含这些提交

新功能

  • PdfViewerFragment 现在支持 StylingOptions(一组样式资源 ID),可以通过 newInstance 或 XML(FragmentContainerView)实现自定义样式。子类可以使用受保护的构造函数实现类似功能。
  • StylingOptions 目前接受 containerStyle,它提供
    • 支持快速滚动手柄和页面指示器的自定义可绘制对象。
    • 用于精确定位快速滚动手柄和页面指示器的 marginEnd 属性。

API 更改

  • 添加了 PdfView 的公共属性 (I30fc5)
  • 为 PDF 视图添加了新的 API StylingOptions。 (Id2993)

错误修复

  • 修复了快速滚动手柄和页面指示器可见性状态之间的同步差异。

版本 1.0.0-alpha06

2025 年 1 月 29 日

androidx.pdf:pdf-document-service:1.0.0-alpha06androidx.pdf:pdf-viewer:1.0.0-alpha06androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交

错误修复

  • 修复:解除绑定未注册的服务时因 IllegalArgumentException 导致的崩溃 (eb4e85)
  • 修复:因 mMaxPagesnumPages 差异导致的 IllegalArgumentException 崩溃。 (75d763)

版本 1.0.0-alpha05

2024 年 12 月 11 日

androidx.pdf:pdf-document-service:1.0.0-alpha05androidx.pdf:pdf-viewer:1.0.0-alpha05androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交

错误修复

  • 此库现在使用 JSpecify 空值注解,它们是类型用途注解。Kotlin 开发者应使用以下编译器参数强制正确使用:-Xjspecify-annotations=strict(从 Kotlin 编译器 2.1.0 版开始,这是默认设置)。(I38301, b/326456246)
  • 修复了 Android 13 中旋转后显示之前打开的页面的问题。(Ib03dd)
  • 修复了旋转时工具箱消失的问题。(01148f)

版本 1.0.0-alpha04

2024 年 11 月 13 日

androidx.pdf:pdf-viewer:1.0.0-alpha04androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04 已发布。版本 1.0.0-alpha04 包含这些提交

扩展兼容性

  • PDFViewer 库现在支持 Android S、T、U 和 V 版本。这种增强的兼容性与 SDK 扩展 13 更新相关。

API 更改

  • PdfViewerFragment 添加了最小 SdkExtension 约束。(I922af)
  • 为 PDF Viewer 库公开了新的 API。(I0af57)

错误修复

  • 修复了进程死亡问题导致的崩溃。
  • 与密码对话框相关的 UI 修复。
  • findInFileViewFastscrollView 的无障碍功能修复。

持续开发

  • 我们正在积极努力将 Jetpack Compose 集成到库中。

版本 1.0.0-alpha03

2024 年 9 月 18 日

androidx.pdf:pdf-viewer:1.0.0-alpha03androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03 已发布。版本 1.0.0-alpha03 包含这些提交

错误修复

  • 首次打开搜索时键盘不弹出的问题已解决
  • 与 FindInFile 视图字体相关的 UI 修复。
  • 文本选择和拖动手柄的 UI 修复。

已知问题

  • PDF 文档中的 3D 图像未在查看器中渲染。
  • PdfViewerFragment 在非常大的 PDF 文档(> 250 MB)上存在一些性能问题

版本 1.0.0-alpha02

2024 年 9 月 4 日

androidx.pdf:pdf-viewer:1.0.0-alpha02androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02 已发布。版本 1.0.0-alpha02 包含这些提交

错误修复

  • 已解决从纵向旋转到横向以及应用进入睡眠状态时 PDF 图像模糊的问题。
  • 即使配置发生更改,“在文件中查找”菜单现在也会保留结果计数。
  • FloatingActionButton 图标现在可用于单页 PDF。
  • 已修复“在文件中查找”栏与 FloatingActionButton 之间的重叠问题。
  • 现在可以在查看器中渲染文本和高亮注释。
  • “在文件中查找”栏的无障碍功能已得到改进。
  • 已实施旋转的 UI 修复,包括保留查找计数、解决文本选择菜单消失问题以及解决 FAB 重叠问题。
  • 已修复横向模式下“在文件中查找”菜单隐藏在键盘后面的问题。

已知问题

  • PDF 文档中的 3D 图像未在查看器中渲染。
  • PdfViewerFragment 在非常大的 PDF 文档(> 250 MB)上存在一些性能问题

版本 1.0.0-alpha01

2024 年 8 月 7 日

androidx.pdf:pdf-viewer:1.0.0-alpha01androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01 已发布。版本 1.0.0-alpha01 包含这些提交

新功能

PDFViewer 的初始 Alpha 版本包含早期预览实现,可实现核心 PDF 阅读场景。请注意,PdfViewerFragment 目前仅支持 Android V (SDK 35) 版本。对旧版 Android 的支持将在未来版本中添加。

  • 引入了 PdfViewerFragment,您的应用可以使用它来渲染 PDF 文档。PdfViewerFragment 简化了在您的 Activity 中集成 PDF 查看器,并允许用户通过以下方式进行交互:
    • 缩放:捏合放大和缩小以调整缩放级别,获得舒适的阅读体验,并双击以快速放大/缩小到默认状态。
    • 导航:在默认/缩放状态下滚动。PdfViewerFragment 提供了一个快速滚动条,用于在页面之间快速滚动。
    • 文本操作:长按文本即可选择文本,允许用户对当前页面使用“复制”和“全选”等选项。
    • 受密码保护的文档:PdfViewerFragment 提供一个对话框,供用户输入密码并打开文档。
    • 可导航超链接:用户可以通过点击 PDF 中的超链接导航到 Web URL 或书签。
    • 注释模式快捷方式:PdfViewerFragment 尚不支持编辑模式。相反,PdfViewerFragment 显示一个 FloatingActionButton,它会触发一个隐式 android.intent.action.ANNOTATE Intent,并附带文档 URI。

API 更改

  • 添加了 PdfViewerFragment.documentUri 属性,用于设置文档的文件或内容 URI 并启动文档加载。PdfViewerFragment 在设置 URI 时显示加载微调器,表示文档正在后台处理。
  • 添加了 PdfViewerFragment.isTextSearchActive 以切换“在文件中查找”菜单的可见性。PdfViewerFragment 处理整个流程 - 允许输入、显示匹配总数、启用结果之间导航以及退出。
  • 添加了 onDocumentLoadSuccessonDocumentLoadError 回调,这些回调在文档成功渲染后或渲染前发生错误后调用。

已知问题

  • 在某些情况下,“在文件中查找”栏会与 FloatingActionButton 重叠。
  • 单页 PDF 不可见 FloatingActionButton 图标。
  • 在“在文件中查找”菜单中,配置更改后结果计数不会保留。
  • 关闭“在文件中查找”菜单时会观察到闪烁现象
  • PDF 文档中的 3D 图像未在查看器中渲染。
  • 无障碍功能将在后续版本中启用。
  • 从纵向旋转到横向时,PDF 图像会变得模糊。
  • 不支持文本/高亮注释。
  • PdfViewerFragment 在非常大的 PDF 文档(> 250 MB)上存在一些性能问题

注意

  • compileSdk 更新到 35 5dc41be