Android PDF 渲染

Posted

技术标签:

【中文标题】Android PDF 渲染【英文标题】:Android PDF Rendering 【发布时间】:2011-10-28 14:00:23 【问题描述】:

我想在不使用内置应用程序或查看器的情况下在 android 中呈现/打开 PDF 文件(存储在 SDCard 中)。

1) 我们尝试过 MuPDF 开源库,但使用该库进行渲染非常慢。

2) 我们可以使用 iText 库在 Android 中渲染 PDF 文件吗(即 iText 作为 PDF 查看器)。

是否有任何其他可在 Android 中使用的 PDF 库(开源)或建议为 Android 开发 PDF 查看器的基本指南。

【问题讨论】:

【参考方案1】:

1) MuPDF 可以很好地在 android 中渲染教科书 pdf,而渲染带有大图像的 pdf 可能会很慢。如果您希望 MuPDF 在 android 平台上快速稳定地运行,则需要进行大量自定义和改进,尤其是内存使用控制。您可以查看基于 MuPDF 的两个开源项目 VuDroid 和 apv。

2) 这取决于您的要求。 iText 可能足以呈现简单的文本 pdf,但我认为它的性能并不比 MuPDF 或其他使用 C/C++ 开发的库更好。

另一种选择是使用Poppler。一个成功的案例是流行的安卓应用 ezPDF Reader 基于 Poppler,尽管它违反了 GPL 许可。开箱即用的 Poppler 需要比 MuPDF 更多的工作才能在 android 上顺利运行。可以参考开源项目apdfviewer。

【讨论】:

暴食感谢您的及时回复-将尝试建议的选项并让您知道...同时我正在探索一些东西并找到了另一个选项,即 PDFBox-我们可以在 Android 中将其用作PDF 查看器... 为什么你认为 ezPDF 是基于 Poppler 的? Newspaper Direct 的 Pres-s-reader 也在使用 Poppler,虽然平移有点滞后,但效果也很好。【参考方案2】:

我最近在这个领域做了一些研究,我在 Android 上尝试了超过 14 个库,我对一些高分辨率的可打印 PDF 杂志进行了简单的基准测试,我目前正在考虑使用 MuPDF 或Radaee 在工作中表现出色。

我也尝试过 VuDroid 和 apv,但它们非常不稳定,在复杂的 PDF 文档上经常崩溃,与 MuPDF 或 Radaee 相比非常慢。

由于 MuPDF 和 Radaee(以及其他一些库)是用纯 C 语言编写的,并通过 NDK 在 Android 上使用,因此它们提供了尽可能好的性能(并且它们都是为商业用途付费的)。

【讨论】:

似乎所有的MuPDF(衍生VuDroid,apv),Radaee都不适合在付费应用中使用。那是可以在付费应用中使用的任何pdf库吗? 我不确定你到底在问什么,但如果你的问题是什么库可以免费用于商业目的,你可以寻找 PDFBox 库。虽然它是 Java 库,但在某处可能有一些适用于 Android 的端口(例如,似乎在 GitHub 上启动了一些项目:github.com/jeremyvillalobos/android-pdfbox-port)......还有另一个 Java PDF 库,名为来自 Sun 的 PDFView,它是完全免费的。 【参考方案3】:

看看我的 Android 版 PDF 阅读器here at anddev。 我记得它使用修改后的 PDFBox(没有与编辑相关的东西),并具有我自己的字体转换器(将字体提供给 Android 并更快地呈现它们)。

我不再开发 PDF 阅读器,我可以将所有更改开源(尽管这需要一些工作和时间)。你可以试一试,看看它对你的表现如何。注意:阅读器不支持加密和复制保护。

【讨论】:

以上是关于Android PDF 渲染的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中渲染 PDF

渲染/显示和播放嵌入 pdf、Android 的 youtube 视频

如何在 Android 中将 PDF 页面转换为图像?

android中的自定义pdf查看器

在 Android 中显示巨大的图像

Android ImageView加载超长图片解决方案