相似百度文库之类的控件怎样实现?也就是无论什么类型的文件上传后。都能够预览,而无论client浏览器是否安装有相应的软件。
因为项目须要,也须要一个相似的功能,于是自己也翻阅了相关资料。
总结了一下前人的实现方式。
对于一般的图片文件,记事本文件,浏览器能直接打开的预览自然能够实现。不须要特殊处理
pdf文件通过js脚本也能够打开,不须要client安装软件详细可參考
但经常使用的word,excel,PPT文件怎样实现预览呢?
事实上各种实现预览的技术,基本都是先进行转换。比如转化为HTML文件。或者是PDF文件不就能够实现预览了吗?
至于实现仅仅能预览不能下载。改动,基本上都是把文件转为PDF文件在转为Flash文件,比如使用pdf2swf。swftools,FlexPaper就能够实现相似百度文库的效果了。
于是核心的问题,成了怎样把word,excel,PPT文件转化为PDF之类能够直接预览的文件。
主要有几种实现方式:
1使用微软的软件把文件转化为HTML文件
事实上微软本身就带有这种功能,直接打开文件另存为就能够了。但怎样通过程序来实现的?
仅仅能使用微软office的com组件。这种实现方式相对来说挺简单,但使用的是com的组件,就必须安装微软的office,否则你就必须知道com之间的依赖关系。但使用com就easy出现各种各样的错误,并且一般都非常难找到解决方法。
web程序要调用com,这又涉及到权限问题。也不优点理。当然能够把转化文件的功能做成服务。仅仅要发现上传了文件就转化。就没有web程序权限问题了。
事实上微软还提供了一种在线预览的方式。详细參考,但要求必须有外网。
或者把这套软件安装在公司内部,详细怎样安装,我就不太清楚了。
2使用第三方软件转为PDF,或者是HTML文件,比如Pageoffice,aspose等,但都是收费的,眼下还没有发现免费的。
详细怎样使用请參考官网。
一时之间也没有找到好的方法,于是就使用微软的com实现了在线文件预览功能。
參考文档