针对office文档的在线浏览功能,解决方案有如下几种,其中各有优劣之处。这次只对解决思路作个说明,具体实现会在后面的博文中作说明。前端
方案一:使用微软的dsoframer.ocx,该插件不在此详细介绍了,其存在依赖性,须要windows系统下,而且只能运行在IE或者IE内核的浏览器(IE6不能自动注册插件)。java
优势:功能强大,能够动态生产word模板,红头文件等,能够在线编辑保存至本地或者服务器。(pageoffice能够做为替代,可是是收费插件。)linux
缺点:插件下降浏览器安全性,ocx插件偶现没法注册的状况,而且运行不稳定。在IE7、8下,连续编辑文档两次会常常出现浏览器奔溃现象。官方已经中止更新。windows
方案二:使用flashpaper或者print2flash。这两个控件实现起来较为方便,可是比第一种方案稍慢一些。实现原理是上传文档,java调用flashpaper或者print2flash将文档转化为swf文件,前端直接用flashpaper或者print2flash显示swf文件便可。浏览器
优势:支持转化的文件格式较多,前端因为调用flashpalyer显示,因此能够跨浏览,没有浏览器的局限性。安全
缺点:存在水印,flashpaper可使用破解版去除水印,print2flash暂时没有好的去水印方法。此方案须要在windows环境下实现,而且windows环境下要安装flashpaper或者print2flash软件。Flashpaper不支持64位系统。服务器
方案三:使用jacob(或者Jcom)+openOffice(或者MSOffice)+swfTools+flexpaper。实现原理是jacob调用openOffice先将上传的文档转换成pdf文件,在用swftool的pdf2swf功能将pdf文件转换为swf文件,最后在页面用flexpaper显示swf文件。工具
优势:与第二个方案比较,没有什么优越性。flex
缺点:只能在windows下实现,转化两次速度比较慢。系统须要安装两个工具,以及注册jacob.dll。jacob的版本与jdk版本要对应。spa
方案四:使用JodConverter、openOffice、swfTools。实现原理是JodConverter调用openOffice先将上传的文档转换成pdf文件,在用swftool的pdf2swf功能将pdf文件转换为swf文件,最后在页面用flexpaper显示swf文件。
优势:相比前面三种解决方案,此方案能够在linux下实现。
缺点:转换两次速度比较慢。系统须要安装其余工具。