乐于分享
好东西不私藏

Android 阅读 Office 文档,所有你能想到的解决方案都在这啦

Android 阅读 Office 文档,所有你能想到的解决方案都在这啦

回复1024 随机给你一个惊喜

前文瞎扯淡环节

破天荒的在周末给大家推送一篇技术文章,莫见怪。这周推送文章数量较少,主要在整理 GitHub 开源安卓项目和资源,将之前的分类排版重新捣腾了一番,花费了不少精力和时间,总算整理个差不多了,回头一看,“诶呦,还不错哦”,不枉一番心血。后续将单独写一篇文章予以介绍,先卖个关子,有兴趣的安卓开发朋友可以关注一下,绝对值得 Star:

https://github.com/Mike-bel/Awesome_Android

前几天看见 asce1885 总结的一篇有关 Android 平台上浏览 PDF 文件的文章,列出了多种实现方式以及它们的优缺点,较为详细。刚好,不久前,个人经手的一个项目中也涉及到了 Office 文档(常见如 PDF、EXCEL、WORD、PPT等)在线阅读的功能,并为之做了一番了解,故写下此文,在该文章的基础上,做一些个人的补充完善,供后续再次使用时能有所翻看。

在 iOS 平台上,实现移动端 Office 文档的在线阅读非常简单,只需要使用 WebView 加载网络文件的 Url 地址即可显示。而在 Android 平台上,由于“高墙耸立”,Google 在国内的访问限制,导致这一简单的操作变得复杂起来,开发人员不得不寻求其他解决方案,这里列举一些。

WebView 网页显示

借助 WebView 控件加载远程文档的 Url 地址即可,这里有 Google Doc 和 Office Web 365 两种解析方案。

Google Doc

类似 iOS ,Google 也提供了一种在线文档解析的功能,只需要按照固定的格式将远程文档的 Url 地址传给 Google 服务器,即可利用 WebView 控件加载新的 Url 地址,显示即可。WebView 加载的 Url 地址格式如下:

https://docs.google.com/gview?embedded=true&url=文档地址

优点:使用简单,无需服务器和客户端的额外部署工作。
缺点:国内需要翻墙访问。

Office Web 365

第三方公司提供的一种 Office 文档在线预览的功能,能够实现 Microsoft、Adobe、WPS 文档的移动端和PC端在线网页访问。使用简单,类似 Google Doc 访问方式,一个固定格式的链接,轻松实现:

http://ow365.cn/?i=您的网站ID&furl=文档地址

地址:http://www.officeweb365.com/
优点:功能强大,使用简单。
缺点:付费使用(可免费受限使用,如访问次数、广告显示等)。

打开本地应用

如果移动设备中安装有能够打开 Office 文档的本地应用,也可以借助它们打开所要操作的文档,当然前提是必须先将远程文档下载到设备的本地存储空间中:

优点:可读可写。
缺点:需要先行下载,同时设备中存在能够打开文档的本地应用,并且阅读时会离开当前应用。

第三方 SDK

网上有一些免费开源的解析源码和第三方公司提供的付费 SDK,将其嵌入自己的项目中,便能使用其中的功能操作 Office 文档。这种方式的缺点也显而易见,最直接的就是大大增加了 APK 安装文件的大小。免费的开源项目,存在一些局限性和不稳定性,操作繁琐;付费 SDK ,使用起来相对较为简单。

免费开源

  • pdfium

    Google 的开源项目,也是 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 文件阅读功能调研

公号推荐

专注程序员的编程知识,原创教程,最新动态等。现在是编程的黄金时代,是程序员的ShowTime。我们不是码农,不是屌丝,也不是程序猿,我们是程序员联盟

热门推文

Android RenderScript 简单高效实现图片的高斯模糊效果

Android 突破64K方法数的限制

[译]开发安卓Apps,我所努力学习到的三十多条宝贵经验

这「非常7+1」条小贴士,助你Coding水平再提一阶!

推荐|一张思维导图,告诉你Android新手如何快速入门

阅读原文 进入【YiFeng ‘ Zone】

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Android 阅读 Office 文档,所有你能想到的解决方案都在这啦

评论 抢沙发

3 + 6 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮