一个项目中要做一个在线预览附件(和百度文库差不多)的小功能点,楼主在开发过程中踩了很多坑的同时也总结了一些方法,仅供广大猿友参考,那么要实现这个小功能,目前主要是有如下3种可行的实现方式,下面先说实现的思路设计与他们的优缺点:
第一种思路:先把附件office文档(doc,docx,ppt,pptx,xls,xlsx,txt)转为PDF格式,这里需要用一个OpenOffic这玩意来转换,有服务和端口的属性,所以它是一个服务类软件(像tomcat这类,区别是所提供的服务各不相同),然后把PDF转为SWF文件类型,最后在前台页面使用Flexpaper插件进行播放即可实现。
第一种方式的好处在于:可以兼容IE低版本的浏览器。
第一种方式的!好在于:
首先是把一个附件进行了2次的转换,这里的转换是指另外保存了.pdf和.swf这两种格式的文件,这无疑的加大了存储空间的使用。
其次是.swf格式的文件需要放到项目的WebRoot文件夹的下层才能被Flexpaper插件所读取,当然了你也可以使用Nginx做一个地址映射,把.swf文件放到别的地方也能被Flexpaper所读取。
最后这种方式最大的缺点是Flexpaper插件主要是依赖于一个文件FlexPaperViewer.swf,而这个文件是无法编辑的,如果要编辑,则要找到Flexpaper的源码,然后修改源码,在重新构建生成FlexPaperViewer.swf,来着这里,大家肯定会问,为什么要编辑这个文件,那是因为这个文件是控制Flexpaper插件的各种按钮的,比如打印按钮的显示和隐藏,更重要的是Flexpaper插件是有它自带的L