Office在线预览及PDF在线预览

更新时间:2024-04-15 20:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、原始需求:

工单描述 dwg、PDF、word、excel等格式的文件需支持在线预览。 需求来源备注 王小立、刘海涛 Dwg图纸的在线预览已通过第三方插件实现,现需要解决的是office文件及pdf文件的在线查看。

二、技术分析:

文件预览即文档以

flash的形式在网页上展示,所以要解

决两个问题:以什么格式展示flash、文档如何转化为符合格式的flash。

展示flash有两种方式,一种是直接生成好一个完整的flash展示出来,一种是用一个播放器来播放另外一个文档flash。第一种方式可以用SWFTools的工具直接将pdf转化成一个整体的flash展示,但这种方式的flash较大,且不容易控制,故用得较少。第二种方式是重点,首先需要了解的是一个开源的flexpaper播放器,它可以播放一帧一页的flash;在flexpaper的基础上,如果遇到大文档则会出现速度和性能的问题,这个时候需要像百度文库、豆丁一样修改flexpaper,让它支持一次仅读取指定页数的flash;如果文档安全级别较高,不允许下载查看,则需要给flexpaper加上加密解密算法;如果需要登录用户才能查看,则要让flexpaper有登录UI。

转化文档为flash的思路有一条,但有多种实现方式。一般文档需要先转化为pdf,再从pdf转化为flash。转化为pdf的方法有很多,例如使用虚拟打印机、使用MicrosoftOffice的API、使用OpenOffice转化等,不过转化的过程中,可能由于文档有误、损坏、加密等原因造成转化失败。从pdf转化为flash就简单了许多,直接使用SWFTools的pdf2swf即可实现多种方式的转化。

下图是文档转化到swf的一个流程,其中type是文档的一个状态标识(0表示未处理过的文档,1表示已生成pdf,2表示已生成flash,-1表示不受支持的文档格式,-2表示转化为pdf失败,-3表示转化为flash失败)

三、技术实现:

1、通过第三方工具openoffice,将word、excel、ppt等文件转换为pdf文件。( openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行,服务器上需要启动openoffice server)

2、通过swfTools将pdf文件转换成swf格式的文件。 3、通过FlexPaper文档组件在页面上进行展示。

缺点:

1、服务器上必须安装Office软件,且对office版本有限制。

2、Excel页面格式未设置,会出现一张表格显示出多页来,阅读体验大大下降。 3、转换过程非常耗费资源,转换时间也非常漫长,这个时间主要是卡在了转换PDF上面。

4、转换完成服务器会遗留大量Excel、Word进程无法正常退出。 5、服务安装启动及设置非常麻烦。

6、严重浪费磁盘空间,一个文件还需要一个PDF文件、一个SWF文件。 7、开发需要大量的时间,一般都是作为一个独立项目开发。

四、其他相关:

经过了解,QQ邮箱、163邮箱等邮件中附件在线预览是采用永中office来实现(可访问链接:http://dcs.yozosoft.com/),类似的还有officeweb365(https://www.officeweb365.com/)等商用软件,但是涉及到付费、版权等问题,而且大多都是只支持公网环境下使用,我们的项目不适合使用此类方式实现。

本文来源:https://www.bwwdw.com/article/9rep.html

Top