首先贴个好东西,一个方案文档,这是我已经实现过两种方案后才看到的一片文章,先行参考先整体思路。
http://www.officeweb365.com/officetoview.html
先说下我的项目需求:
用户上传文件(页面限制格式pdf/doc/docx) -> 点击文件名 -> 在线预览已传文件。
需求比较简单,我的想法是:pdf可以直接打开预览所以这个可以不用考虑,doc/docx的话需要作格式转换,在线预览将其转成pdf或者html/htm页面的方式。doc是97-2003文档,普遍解决方案都有,实现不难,重点是docx,由于是07的文档,在兼容性方面比较困难,后面具体的实现过程会提到。
历程:由于在先前在项目中已经使用POI实现了文档的导出功能,所以我在做时候先用POI尝试实现功能,后面发现POI在07的兼容性方面并不好(这里也有一个就是我用来做demo的文档选得不好,效果欠佳),特别是转换成html文件时会存在字体格式乱码的问题,可以用微软雅黑试试就知道了。故弃用选择Openoffice,发现Openoffice在Windows上的实现真的挺复杂,可以看看这个博主的内容就知道 http://blog.csdn.net/lbf5210/article/details/50519190 ,我的服务器是Linux,所以这种方式复杂了,为了更便捷,我觉得使用直接转成pdf/html/htm即可,然后根据路径预览,不使用上面博主的那种页面插件,可以省去很多麻烦。
下面是两种方式分别实现的方式,各有优缺。
POI实现:https://my.oschina.net/u/2428684/blog/842930
Openoffice实现:https://my.oschina.net/u/2428684/blog/842947