Andriod中的文档在线查看功能,类似于网易邮箱大师中的附件预览功能,要求在app内直接打开office文档、pdf文档等。
思路一:后台统一转换文档格式,安卓端只预览一种格式文档。
在后台将office(Word、Excle、PPT)文档转换为pdf文档,在安卓端预览的时候,其实是从后台先把pdf文档下载到手机上,再去读取。
后台:openoffice + jodconverter将office文档转换为pdf格式。
集成难度不大,网上教程非常多,需要在服务器上安装openoffice,转换速度很慢(页数多特别明显,页数少的话速度在可以接受的范围之内,转换速度与文档大小关系不大,主要是文档页数)。
安卓端使用AndroidPdfViewer第三方库显示pdf文档。
就是使用第三方库,也很简单。
思路二:在安卓端完成文档转换
- 使用Apache的Poi组件,但是由于ppt在转换过程中需要用到java的awt,所以无法实现ppt的转换,也就是说只能实现word、excle的转换。如果项目中只是有转换word或者excle的需求,可以采用Poi。
- 具体是:使用Poi将doc、docx、xls、xlsx文档转换为html,再使用webview加载本地html。
- 这里要注意的是,Poi的jar包的导入。如果去apache的poi官网查看各组件的功能,以及要导入的jar包,但是网上的代码一般都是org.apache.poi.xwpf.converter.xhtml
这个库的。等你导入了这个库,又自己从官网上下载了poi、poi-ooxml等jar包引入后,很可能会导致编译出错,提示有重复文件。这是由于导入的jar包的版本不一致导致的。正确的导入方式可以参考下面的:
|
|
总之,如果你在apache.poi官网上看各个组件之间的依赖关系有些困难,可以去maven看。
- 除了引入库文件以外,还需要在app的gradle文件中添加如下语句:
|
|
思路三:其他
POI由于预览效果不是很好,不建议使用(安卓无法转换ppt与pptx)
Flashpaper缺少后续支持,不建议使用(后台,与安卓无关)
第三方付费产品中,Office Web 365
完全依赖于第三方云服务,在安全性、灵活性、稳定性为验证,不建议使用
科瀚的SOAOffice和卓正软件的pageoffice需要浏览器Activex插件的支持,对用户不是很友好,不建议试用(后台,与安卓无关)
OpenOffice的预览效果稍差,但集成方便;
Office Web Apps预览效果最佳,钉钉、126等也采用此方式,但估计集成难度稍大,另外钉钉的预览偶尔也出现不稳定的情况;
永中office的预览效果和集成难度比较平衡,但需付费。
总之,除非需求必须,否则这种功能还是不要实现,因为难度很大,耗时费力,一般情况下交给系统去打开就行了。当然,主要功能是文档阅读的app除外。
一些代码参考
说明:大部分是从网上找的,仅供参考,功能没问题,但很多细节有待完善。
|
|