类似百度文库在线预览文件内容技术探讨

  类似百度文库之类的控件如何实现?也就是不管什么类型的文件上传后,都可以预览,而不管客户端浏览器是否安装有对应的软件。


    由于项目需要,也需要一个类似的功能,于是自己也翻阅了相关资料。总结了一下前人的实现方式。
    对于一般的图片文件,记事本文件,浏览器能直接打开的预览自然可以实现,不需要特殊处理
  pdf文件通过js脚本也可以打开,不需要客户端安装软件具体可参考
  但常用的word,excel,PPT文件如何实现预览呢?
其实各种实现预览的技术,基本都是先进行转换,例如转化为HTML文件,或者是PDF文件不就可以实现预览了吗?
至于实现只能预览不能下载,修改,基本上都是把文件转为PDF文件在转为Flash文件,例如使用pdf2swf,swftools,FlexPaper就可以实现类似百度文库的效果了。

   于是核心的问题,成了如何把word,excel,PPT文件转化为PDF之类可以直接预览的文件。
   主要有几种实现方式:
   1使用微软的软件把文件转化为HTML文件
     其实微软本身就带有这样的功能,直接打开文件另存为就可以了。但如何通过程序来实现的?
    只能使用微软office的com组件,这种实现方式相对来说挺简单,但使用的是com的组件,就必须安装微软的office,否则你就必须知道com之间的依赖关系。但使用com就容易出现各种各样的错误,而且一般都很难找到解决方法。
    web程序要调用com,这又涉及到权限问题,也不好处理。当然可以把转化文件的功能做成服务,只要发现上传了文件就转化,就没有web程序权限问题了。
   其实微软还提供了一种在线预览的方式,具体参考,但要求必须有外网。
  或者把这套软件安装在公司内部,具体如何安装,我就不太清楚了。 


   2使用第三方软件转为PDF,或者是HTML文件,例如Pageoffice,aspose等,但都是收费的,目前还没有发现免费的。
   
     具体如何使用请参考官网。

    一时之间也没有找到好的方法,于是就使用微软的com实现了在线文件预览功能。
   Csharp调用微软COM转换word为HTML
Csharp调用微软COM转换excel为HTML
Csharp调用微软COM转换ppt为HTML



参考文档
.net 实现Office文件预览



你可能感兴趣的:(.net,C#)