文章复制于:http://www.cnblogs.com/flashlm/archive/2010/11/22/document-preview-online.htmlhtml
相关技术:openOffice JodConverter Swftools FlexPaper算法
近两年出现了许多以“经验交易”为核心的文档平台,如豆丁网、百度文库等网站。这些网站将文档(知识)存放在网站上,供用户浏 览、讨论、下载,配以良好的积分体系和金钱激励(运营),完美的协调好知识分享与知识传播之间的微妙关系。对社会也是很是好的资源重用,是很是棒的一种运营模式。apache
从技术层面 讲,这类网站的创新主要有文档预览、知识商城和SNS三个块。安全
文档预览即文档以flash(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便可实现多种方式的转化。 flex
下图是文档转化到swf的一个流程,其中type是文档的一个状态标识(0表示未处理过的文档,1表示已生成pdf,2表示已生成flash,-1表示不受支持的文档格式,-2表示转化为pdf失败,-3表示转化为flash失败)网站
以上方案免不了须要在部署时安装相关软件,为系统部署带来必定麻烦,须要更进一步的处理方案。加密
在没有版权考虑需求下能够采用apache tika等技术将文档内容提取出来,网页经过相似modal方式展现等...
spa