Print2flash在.NET(C#)中的使用,即文档在线预览

office文档(word,excel,ppt)在线预览查看,有很多种方式,比如可以

1、调用weboffice组件,进行word预览,要求客户端安装word,仅适用IE, word2013, IE11会提示word停止响应;

2、将word转为html文档;

3、使用flexpaper,感觉不是很美观,不过还是可以用;

4、使用flashpaper,效果比较好看,不过只支持32位操作系统,不支持64位;

5、使用print2flash,效果跟flashpaper差不多;

这里主要讲一下print2flash的使用,先上一个效果图:

捕获

print2flash的大体实现是这样的,通过把从客户端上传的word/Excel/ppt文件,调用print2flash官方提供的dll,转化成swf格式文件,最后浏览swf文件,就是上图中的效果。

具体使用 如下:

1、下载print2flash,这里是64位的,可以到官方http://print2flash.com/download.php下载最新的,其中的Print2Flash SDK 3.5,是java php .net asp的代码示例

2、配置服务信息,这一步很关键,不然会提示 COM 类工厂中 CLSID 为 {466FAC17-24D2-4B37-A2C4-E2CFA0D3E1E7} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))(不安装print2flash也会这样提示)

     配置步骤:打开print2flash安装目录,64位操作系统默认在C:\Program Files (x86)\Print2Flash3下,右键管理员方式运行print2flash.exe,点击option—>Print2Flash Service Configuration,如下图:

QQ截图20131105232226

3、在程序里引用Interop.Print2Flash3.dll,并调用如下代码,进行转换。

            String fs_filename = Server.MapPath("UploadedFiles/") + FileUpload1.FileName;
            String fs_convertedfilename = Server.MapPath("ConvertedFiles/") + FileUpload1.FileName + ".swf";
            Print2Flash3.Server2 p2fServer = new Print2Flash3.Server2();
            p2fServer.ConvertFile(fs_filename, fs_convertedfilename, null, null, null);
这里其美中不足的地方是,试用版会在预览的时候,有一串英语,意思是让你到官方去瞅瞅。网上有3.1版本的注册码,这个是3.5的,注册码没法用。

另外官方也提供了相关sdk,这里的源码即是官方提供的。但核心代码就是上面那几句。
源码下载

 

另外这里是官方flexpaper在c#中实现的源码,其实现原理是process调用pdf2swf.exe,将pdf文件转为swf文件,点击下载源码,安装需要swftool0.9.1.exe支持,点击下载swftoolvs运行起来后,页面登陆用户名admin 密码123456 效果图如下

捕获

 

 

您的支持是我最大的动力,喜欢就推荐下吧

posted @ 2013-11-06 18:57  flowbywind  阅读(6931)  评论(11编辑  收藏  举报