WEB格式实现Word、Excel、Txt文档在线转换为Swf(或PDF)  

Word、Excel、Txt在线转换为Swf格式文件已经不是什么新新技术,突出代表为豆丁网、百度文库。在互联网上搜索相关技术文章也不少,搜到最多的就是Adobe Macromedia FlashPaper,还有就是Print2Flash,在后者官方网站介绍中有两者的功能对比,说是Print2Flash要比Adobe Macromedia FlashPaper强大,具体未测试,我只针对FlashPaper进行了实际测试和研究。

测试环境:Win2003+IIS6+Office2007+ASP+Adobe Macromedia FlashPaper 2.2。

备注说明:建议使用Office2007或以上,原因是Office2003不稳定,并且无法转换EXCEL和DOCX文件(互联网上搜到资料这么说的,我之前也没成功,不知道是权限问题还是版本问题),FlashPaper 2.2用的是绿色破解版(你懂的),WEB语言无所谓,本人对PHP、ASP.NET不熟悉,所以不浪费时间。

一、服务器环境调试步骤:

1、先安装FlashPaper,安装好后,在"打印机和传真"中会多一个Macromedia FlashPaper。

2、新建一个Windows 用户账户,加入Administrators组,并将该用户设置为应用站点的IIS匿名访问账户。

3、在IIS中为应用站点建立一个独立的应用程序池,并将该池属性中"标识"下"预定义账户"设置成"本地系统"。

4、打开"系统管理"-"组件服务"-"计算机"-"我的电脑"-"DCOM配置",将"Microsoft Excel 应用程序"属性的"常规"中"身份验证级别"设置为"无";然后将"安全"中"启动和激活权限"、"访问权限"、"配置权限"的"自定义"中加入Everyone,被赋予所有权限。

5、"Microsoft Word 文档"属性同上设置。

6、应用站点中上传文件和存放转换后文件目录要给足写入权限。

二、ASP调用FlashPaper代码部分:

   1:  strCmd = "e:\FlashPrinter.exe e:\test.xls -o   e:\test.swf "    '执行命令行   
   2:      Dim objShell   
   3:      Dim intSecceed   
   4:      Set objShell = Server.CreateObject("WScript.Shell")   
   5:      Response.Write(strCmd & "<hr>")   
   6:      intSecceed = objShell.Run(strCmd,1,false)   
   7:      If intSecceed = 0 Then  
   8:       Response.Write("命令成功执行,返回码:" & intSecceed)   
   9:      Else  
  10:       Response.Write("命令执行失败,返回码:" & intSecceed)   
  11:      End If  
  12:      set objShell = nothing

写在最后:只是简单实现实现Word、Excel、Txt文档在线转换Swf技术,但还留下一些问题待解决。

1、线程问题,ASP代码对线程控制的控制的不是很好,一旦出现EXCEL假死不能关闭进程,有可能会导致后面的转换无法进行。

2、并发问题,一旦大批量同时转换,那么势必会照成服务器端CPU与内存资源的占用,最好的办法是用队列来解决,FlashPaper虚拟打印机在打印机属性里设置后台打印设置,好像不好使。

3、转换中途FlashPaper或Office组件出错,如何结束错误并反回WEB调用信息。

以上问题估计ASP是很难实现了,如果有高手请多多赐教。

这里将提供FlashPaper模版DefaultViewer2.swf去LOGO下载:

下载地址:DefaultViewer2.swf去LOGO文件

本文来自  传送门

请订阅本站 RSS feed 订阅到信箱 ,欢迎 Donate 或者 上面的广告内容 支持三十岁

本文链接:WEB格式实现Word、Excel、Txt文档在线转换为Swf(或PDF)

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
评论关闭