前几天看见 asce1885 总结的一篇有关 Android 平台上浏览 PDF 文件的文章,列出了多种实现方式以及它们的优缺点,较为详细。刚好,不久前,个人经手的一个项目中也涉及到了 Office 文档(常见如 PDF、EXCEL、WORD、PPT等)在线阅读的功能,并为之做了一番了解,故写下此文,在该文章的基础上,做一些个人的补充完善,供后续再次使用时能有所翻看。在 iOS 平台上,实现移动端 Office 文档的在线阅读非常简单,只需要使用 WebView 加载网络文件的 Url 地址即可显示。而在 Android 平台上,由于“高墙耸立”,Google 在国内的访问限制,导致这一简单的操作变得复杂起来,开发人员不得不寻求其他解决方案,这里列举一些。
WebView 网页显示借助 WebView 控件加载远程文档的 Url 地址即可,这里有 Google Doc 和 Office Web 365 两种解析方案。
优点:可读可写。缺点:需要先行下载,同时设备中存在能够打开文档的本地应用,并且阅读时会离开当前应用。
第三方 SDK网上有一些免费开源的解析源码和第三方公司提供的付费 SDK,将其嵌入自己的项目中,便能使用其中的功能操作 Office 文档。这种方式的缺点也显而易见,最直接的就是大大增加了 APK 安装文件的大小。免费的开源项目,存在一些局限性和不稳定性,操作繁琐;付费 SDK ,使用起来相对较为简单。
免费开源
pdfiumGoogle 的开源项目,也是 Chrome 浏览器的PDF渲染引擎,初始代码来自国内知名PDF技术公司「福昕」。
AndroidPdfViewer
PdfiumAndroid基于 pdfium 的两个 Android 平台实现方式,支持 PDF 文档的应用内预览,支持动画、缩放、手势和双击操作。
MuPDF一个轻量级的 开源 PDF 和 XPS 查看器。
付费 SDK
Foxit PDF SDK福昕出品,性能稳定,功能强大,支持 PDF 的显示、导航、创建、搜索、注释、保护、PDF文本提取、图片转换、表单数据收集和编辑等功能。
plugPDF来自国外的一个付费 SDK,使用简单,只需三步即可集成到自己的应用中并使用。
需要在服务器端完成 Office 文档的解析工作,通过一些技术手段将文档转换为 Html 文件或者 图片,然后再在客户端通过 WebView 加载显示。
PDF.js「 mozilla 」开源的一种JS解决方案,提供了服务器和客户端两种集成方式。
pdf2htmlEX类似 PDF.js
,在服务器端集成,利用 Web技术完成 Office 文档的解析工作。
总体来说,在 Android 平台上实现 Office 文档的预览和编辑功能,属于一个较为棘手的问题,需要结合实际产品需求和开发成本、稳定性等多方面考虑。当然,如果不是硬需求,最好不要随意集成开源 SDK,毕竟研发成本过高,同时稳定性不见得如你所想。最后,再次感谢 asce1885 的总结,参考地址:Android 实现 PDF 文件阅读功能调研。
备注:头条不支持文中外链,可以直接访问作者原文博客,地址如下:
http://yifeng.studio/2016/11/06/android-office-document-viewer/
,