| 最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2026 年 2 月 11 日 | - | - | - | 1.0.0-alpha13 |
声明依赖项
如需添加 PDF 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle 文件中添加所需工件的依赖项:
Groovy
dependencies { implementation "androidx.pdf:pdf-viewer-fragment:1.0.0-alpha13" }
Kotlin
dependencies { implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha13") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
此工件没有版本说明。
版本 1.0
版本 1.0.0-alpha13
2026 年 2 月 11 日
发布了 androidx.pdf:pdf-*:1.0.0-alpha13。版本 1.0.0-alpha13 中包含这些提交内容。
新功能
- 引入了
EditablePdfViewerFragment,它扩展了标准PdfViewerFragment以提供 PDF 编辑功能,包括注释和表单填写。 - 注释:利用
androidx.ink库提供全面的 PDF 注释支持。通过“修改”图标FloatingActionButton触发的专用工具栏可让您访问以下专业工具:- 笔:可直接在文档上进行手写和绘制。用户可以自定义笔画,调整粗细并使用丰富的调色板。
- 荧光笔:支持自由式突出显示和贴靠文字突出显示,提供多种颜色。
- 橡皮擦:精确移除特定注释。
- 撤消和重做:提供内置功能,可无缝撤消或重做最近的更改。
- 表单填写:支持点击和修改文本输入、下拉菜单、复选框和单选按钮等表单字段。
EditablePdfViewerFragment支持内嵌表单填写功能,可提供顺畅的用户体验。此功能通过PdfView中的isFormFillingEnabledAPI 进行控制。EditablePdfDocument:一个扩展PdfDocument的新接口,用于管理和应用表单数据编辑。PdfViewer可组合函数支持与表单字段进行互动,可通过isFormFillingEnabled参数进行控制。
- 保存更改:
PdfWriteHandle允许将修改后的内容提交到指定文件。 - 图片选择:添加了对在 PDF 文档中长按选择图片的支持。此功能通过
PdfView和PdfViewer可组合项中的isImageSelectionEnabled属性启用。生成的数据通过OnSelectionChangedListener中的ImageSelection模型公开。 - 双页布局:为大屏设备添加了并排布局模式,可使用
PdfView中的pagesPerRow属性和PdfViewer可组合项进行配置。
API 变更
- 在 Jetpack PDF 库中引入了图片选择 API (Iee0b9, b/470897750)
- 将表单填写处理层 API 公开。(Iec39c、b/474260451)
- 在
SandboxedPdfLoader中为openDocumentAPI 添加了renderParams参数(If9344、b/438269273) - 添加了表单填充呈现层 API(I829c5、b/449869703)
- 在
OnFirstContentLoadListener和OnSelectionChangedListener的回调方法上添加了@MainThread注释(I4cf10、b/466965940) - 将
ApplyInProgressException构造函数标记为内部函数,防止外部实例化(I5cc66、b/465414484) - 在
PdfView中监听器的回调方法上添加了@MainThread注释(Ie7201、b/429407597) - 通过
EditablePdfViewerFragment添加了用于原生编辑功能的 API。(Ifae6c、b/462049364) - 向
PdfView和PdfViewer添加了FirstContentLoadAPI(Icf63d、b/461666545) - [2Page] 向
PdfViewer库添加了双页布局 API(I8d7f1、b/452517650)
bug 修复
- 修复了因在提取位图之前页面已关闭而导致的异常 (b/475255729)
版本 1.0.0-alpha12
2025 年 12 月 3 日
发布了 androidx.pdf:pdf-*:1.0.0-alpha12。版本 1.0.0-alpha12 中包含这些提交内容。
API 变更
- 将
textAsString函数从TextSelection移至 androidx-main - 将
clearSelection重命名为clearCurrentSelection(I3a318、b/429407597) - 从
TextSelection中移除了textAsString函数(I1305d、b/429407798)
bug 修复
版本 1.0.0-alpha11
2025 年 10 月 22 日
发布了 androidx.pdf:pdf-*:1.0.0-alpha11。版本 1.0.0-alpha11 中包含这些提交内容。
新功能
- 在选择 PDF 内容时启用智能菜单项。
- 在 PDF 中启用超链接选择和“前往链接”选择。
- 公开了选择菜单 API
fromPdfView和PdfViewerComposable,以便开发者添加选择菜单项。 - 在 PdfView 和 PdfViewer Composable 中添加了页面对齐 API,以便开发者在内容高度小于视口高度时选择页面对齐方式。
API 变更
- 将
contentDesc设置为可为 null,并移除了默认值。(I86f8c、b/441973880) - 针对链接选择菜单项公开了
PdfSelectionMenuKeys(Ic9b05、b/447079082) - 将
PageAlignmentAPI 添加到PdfView和PdfViewer中,并添加到 androidx-main - 更改了角度相关 API 以使用度数并在名称中包含单位,明确了角度转换实用程序的单位并同时支持度数和弧度,更改了
StockBrushesAPI 以将库存画笔版本作为工厂函数参数,并公开了荧光笔画笔的自重叠行为控制,将MutableAffineTransform.populateFromTranslate重命名为populateFromTranslation,移除了InProgressStrokesView.setRenderFactory/getRenderFactory。(Id9eab、b/436656418) - 向
PdfView和PdfViewer添加了PageAlignmentAPI(I9c9a5、b/438065228) - 公开了
PdfViewer可组合项中的选择菜单 API(Id9b0f、b/407663999) - 将
PdfView设为ViewGroup。不支持任意子元素。(Ib51d8、b/410008792) - 公开了
PdfView中的HyperLinkSelection和GoToLinkSelection(I378c4、b/441280002) - 重构了
PdfPageContent以支持通用选择 (I28f16、b/437845185) - 从
PdfView中公开了选择菜单 API(Idd547、b/407663737) - 将与选择相关的类移至专用软件包 (I953cb, b/436157691)
- 在
PdfViewerFragment中引入了用于 PdfView 访问的实验性onPdfViewCreated。(I86715、b/422620454) - 向
PdfLoader添加了FileDescriptorAPI (I60b8d)
bug 修复
- 改进了输入模型,使笔画能更准确地反映输入 (I93097)
外部贡献
- 为链接选择菜单项公开了
PdfSelectionMenuKeys - 从
PdfViewer可组合项公开选择菜单 API - 从
PdfView公开选择菜单 API
版本 1.0.0-alpha10
2025 年 7 月 16 日
发布了 androidx.pdf:pdf-*:1.0.0-alpha10。版本 1.0.0-alpha10 中包含这些提交内容。
新功能
- 增强型选择功能,可让用户通过将选择手柄拖动到页面边界之外来选择多个页面上的文本。
- 应用现在可以拦截并自定义 PDF 文档中超链接点击的处理方式。
API 变更
- 公开了用于呈现 PDF 内容的可组合项 (I8e7ee)
- 将
PdfPoint和PdfRect移动到androidx.pdf.models软件包 (I26cf4) - 公开用于呈现 PDF 内容的 View 组件 (I9fe27)
- 公开了用于提前初始化 PDF 资源并缩短冷启动延迟时间的 API (a18fa89)
- 公开了用于替换 PDF 内容中的超链接点击处理的 API(6330a8b)
- 公开了新的制品 pdf-document-service 和相应的 API -
PdfLoader、PdfDocument和SandboxedPdfLoader。这些接口可用于实现 PDF 文档的解析和处理组件 (Ide70d) - 公开了一个 API,用于在
PdfView上设置PdfDocument以初始化文档的渲染 (If8738)
版本 1.0.0-alpha09
2025 年 5 月 7 日
发布了 androidx.pdf:pdf-*:1.0.0-alpha09。版本 1.0.0-alpha09 中包含这些提交内容。
重大变更
- 代码库已进行重大重构,现在完全使用 Kotlin 编写,并利用协程和
ViewModel。这包括对PdfViewerFragment的重新实现。此版本不包含任何新 API 或功能。
已知问题:
- 快速滚动条和页面指示器缺少阴影效果。
- 单页 PDF 文档可能无法始终居中并缩放到视图宽度。
API 变更
- 为
containerStyleResId添加@StyleRes注解。(I88d85)
版本 1.0.0-alpha08
2025 年 3 月 12 日
发布了 androidx.pdf:pdf-document-service:1.0.0-alpha08、androidx.pdf:pdf-viewer:1.0.0-alpha08 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08。版本 1.0.0-alpha08 中包含这些提交内容。
bug 修复
- 解决了因缩放差异而导致的不同 Android 设备之间选择菜单放置位置不一致的问题。选择菜单位置现在在各种设备上保持一致。
- 在配置更改等场景中,对齐了片段重新创建时的快速滚动条和页面指示器位置。
版本 1.0.0-alpha07
2025 年 2 月 26 日
发布了 androidx.pdf:pdf-document-service:1.0.0-alpha07、androidx.pdf:pdf-viewer:1.0.0-alpha07 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07。版本 1.0.0-alpha07 中包含这些提交内容。
新功能
PdfViewerFragment现在支持StylingOptions(一组样式资源 ID),可通过newInstance或 XML (FragmentContainerView) 实现自定义样式。子类可利用受保护的构造函数实现类似的功能。StylingOptions目前接受containerStyle,后者提供:- 支持为快速滚动条手柄和页面指示器使用自定义可绘制对象。
- 用于精确定位快速滚动条手柄和页面指示器的
marginEnd属性。
API 变更
bug 修复
- 修复了快速滚动条控柄与页面指示器显示状态之间的同步差异。
版本 1.0.0-alpha06
2025 年 1 月 29 日
发布了 androidx.pdf:pdf-document-service:1.0.0-alpha06、androidx.pdf:pdf-viewer:1.0.0-alpha06 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06。版本 1.0.0-alpha06 中包含这些提交内容。
bug 修复
- 修复:取消绑定未注册的服务时,由
IllegalArgumentException引起的崩溃 (eb4e85) - 修复:因
mMaxPages和numPages存在差异而导致的崩溃IllegalArgumentException。(75d763)
版本 1.0.0-alpha05
2024 年 12 月 11 日
发布了 androidx.pdf:pdf-document-service:1.0.0-alpha05、androidx.pdf:pdf-viewer:1.0.0-alpha05 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05。版本 1.0.0-alpha05 中包含这些提交内容。
bug 修复
- 此库现在使用 JSpecify nullness 注解,这些注解属于 type-use 类型。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-alpha04 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04。版本 1.0.0-alpha04 中包含这些提交内容。
扩展的兼容性
PDFViewer库现在支持 Android 版本 S、T、U 和 V。这种增强的兼容性与 SDK 扩展程序 13 更新相关。
API 变更
bug 修复
- 修复了进程终止问题导致的崩溃。
- 与密码对话框相关的界面修复。
- 针对
findInFileView和FastscrollView的无障碍功能修复。
正在开发
- 我们正在积极努力将 Jetpack Compose 纳入该库中。
版本 1.0.0-alpha03
2024 年 9 月 18 日
发布了 androidx.pdf:pdf-viewer:1.0.0-alpha03 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03。版本 1.0.0-alpha03 中包含这些提交内容。
bug 修复
- 解决了首次打开搜索时键盘未显示的问题
- 与 FindInFile 视图的字体相关的界面修复。
- 修复了文本选择和拖动手柄的界面问题。
已知问题
- PDF 文档中的 3D 图像不会在查看器中呈现。
PdfViewerFragment在处理非常大的 PDF 文档(> 250 MB)时存在一些性能问题
版本 1.0.0-alpha02
2024 年 9 月 4 日
发布了 androidx.pdf:pdf-viewer:1.0.0-alpha02 和 androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02。版本 1.0.0-alpha02 中包含这些提交内容。
bug 修复
- 解决了从竖屏旋转为横屏时 PDF 图像模糊的问题,以及应用进入休眠状态的问题。
- “在文件中查找”菜单现在可以保持结果计数,即使配置发生更改也是如此。
FloatingActionButton图标现已适用于单页 PDF 文件。- 修复了“在文件中查找”栏与
FloatingActionButton之间的重叠问题。 - 现在可以在查看器中呈现文字和突出显示注释。
- 对“在文件中查找”栏进行了无障碍功能改进。
- 我们针对旋转实现了界面修复,包括保留查找次数、解决文本选择菜单消失的问题,以及解决 FAB 重叠问题。
- 修复了横屏模式下“在文件中查找”菜单隐藏在键盘后面的问题。
已知问题
- PDF 文档中的 3D 图像不会在查看器中呈现。
PdfViewerFragment在处理非常大的 PDF 文档(> 250 MB)时存在一些性能问题
版本 1.0.0-alpha01
2024 年 8 月 7 日
发布了 androidx.pdf:pdf-viewer:1.0.0-alpha01 和 androidx.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 中的超链接导航到网页网址或书签。
- 注释模式的快捷方式:
PdfViewerFragment中尚不支持编辑模式。相反,PdfViewerFragment会显示一个FloatingActionButton,该FloatingActionButton会使用文档 URI 触发隐式android.intent.action.ANNOTATEintent。
API 变更
- 添加了
PdfViewerFragment.documentUri属性,用于为文档设置文件或内容 URI 并启动文档加载。设置 URI 后,PdfViewerFragment会显示一个加载旋转图标,表示正在后台处理文档。 - 添加了
PdfViewerFragment.isTextSearchActive以切换“在文件中查找”菜单的显示状态。PdfViewerFragment处理整个流程 - 允许输入、显示匹配总数、支持在结果之间导航并退出。 - 添加了
onDocumentLoadSuccess和onDocumentLoadError回调,它们会在成功渲染文档后或在渲染之前抛出错误后调用。
已知问题
- 在某些情况下,“在文件中查找”栏会与
FloatingActionButton重叠。 - 对于单页 PDF,
FloatingActionButton图标不可见。 - 在“在文件中查找”菜单中,结果数量不会在配置更改时保留。
- 关闭“在文件中查找”菜单时出现闪烁
- PDF 文档中的 3D 图像不会在查看器中呈现。
- 我们将在后续版本中启用无障碍功能。
- 从竖屏旋转为横屏时,PDF 图片变得模糊。
- 不支持文字/突出显示注释。
PdfViewerFragment在处理非常大的 PDF 文档(> 250 MB)时存在一些性能问题
备注
- 将
compileSdk更新为 35 5dc41be