我希望在Android上打开/渲染存储在SD卡中的PDF文件,而不使用内置应用程序或查看器。
1)我们尝试过MuPDF开源库,但是使用该库进行渲染非常缓慢。
2)我们能否使用iText库在Android上渲染PDF文件(即将iText作为PDF浏览器)。
是否有其他可以在Android上使用的PDF库(开源),或者建议开发PDF浏览器的基本指南。
我希望在Android上打开/渲染存储在SD卡中的PDF文件,而不使用内置应用程序或查看器。
1)我们尝试过MuPDF开源库,但是使用该库进行渲染非常缓慢。
2)我们能否使用iText库在Android上渲染PDF文件(即将iText作为PDF浏览器)。
是否有其他可以在Android上使用的PDF库(开源),或者建议开发PDF浏览器的基本指南。
1) 如果要渲染大图像的pdf文件,MuPDF在安卓设备上可能会比较慢,但对于教材类pdf文件的渲染效果非常好。如果想让MuPDF在安卓平台上运行更加稳定快速,需要进行很多自定义和改进,特别是内存使用控制方面的处理。你可以查看两个基于MuPDF开发的开源项目VuDroid和apv。
2) 这取决于你的需求。iText足以渲染简单的文本pdf文件,但我认为它的性能不如用C/C++开发的MuPDF或其他库。
另一个选择是使用Poppler。一款很受欢迎的安卓应用ezPDF Reader就是基于Poppler开发的,尽管它违反了GPL许可证。与MuPDF相比,直接使用Poppler需要进行更多的工作才能使其在安卓设备上运行流畅。你可以参考开源项目apdfviewer的做法。
最近我在这个领域做了一些研究,尝试了 Android 上的 14 多个库,对一些高分辨率印刷就绪的 PDF 杂志进行了简单的基准测试,并考虑在工作中使用 MuPDF 或 Radaee,因为它们被评为最佳选择。
我也尝试了 VuDroid 和 apv,但它们非常不稳定,在复杂的 PDF 文档上经常崩溃,并且与 MuPDF 或 Radaee 相比非常缓慢。
由于 MuPDF 和 Radaee(以及其他一些库)是用纯 C 编写的,并通过 NDK 在 Android 上使用,因此它们提供了最佳性能(并且它们都需要商业使用付费)。
看看我的 Android PDF 阅读器这里在anddev。 我记得它使用了修改版的PDFBox(不包括编辑相关内容),并且具备了我自己的字体转换器(以更快地将字体提供给 Android 并呈现它们)。
我不再开发 PDF 阅读器,我可以让所有的更改都变成开源(虽然这需要一些工作和时间)。你可以试用一下,看看它对于你的表现如何。注意:阅读器不支持加密和复制保护。