德育量化管理系统

特色功能

ASP.NET技术

ASP.NET中利用FlashPaper将Word转换为Flash

作者:admin 来源: 人气: 标签:asp.net FlashPaper word flash

       FlashPaper是一个虚拟打印机,可将word文件转化成swf格式文件(.doc .xls .txt .pdf等文件都可以正常生成SWF格式),用它可以在ASP.NET页面中实现类似百度文库或豆丁文档的在线文件查看效果。

       如果word或xls中有宏,貌似不成功!

1.代码文件

调用FlashPaper的.aspx文件中代码如下:(首先请确认你的FlashPrinter.exe可以运行)

using System.Diagnostics;

//转换并生产PDF
    public void ConvertToSWF(string oldFile, string swfFile)  // oldFile格式a.doc  newFIle格式  b.swf
   {
        System.Diagnostics.Process pc = new System.Diagnostics.Process();
        pc.StartInfo.FileName = @"C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe";  //默认安装目录
        pc.StartInfo.Arguments = string.Format("{0} -o {1}", oldFile, swfFile);  //调用FlashPrinter的命令
        pc.StartInfo.CreateNoWindow = true;     //不创建窗口
        pc.StartInfo.UseShellExecute = false;    //不使用系统外壳程序启动
        pc.StartInfo.RedirectStandardInput = false;    //不重定向输入
        pc.StartInfo.RedirectStandardOutput = false;     //不重定向输出
        pc.StartInfo.RedirectStandardError = true;  
        pc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        pc.Start();
        pc.WaitForExit();
        pc.Close();
        pc.Dispose();
    }  

 

2.FlashPaper在IIS6.0下不能运行的解决办法,是以下三者之一,反正我三个全试过就好使了,不清楚是哪一个:

 1.如果不能正常操作,是权限的问题,以iis 为例,请把IUSR_xxx授权到读写的文件夹
 2.在IIS的应用程序池中的标识预定义账户修改成本地系统,就拥有了全部的权限,就可以实现了
 3.还碰到权限问题,简单的解决方法如下: 请把Network Service账号添加至administrators组,并重启iis admin服务。另外说一句,如果找不到Network Service账号,请找IIS_WPG组,把该组加到admin,这其实是一样的,该组下的NT AUTHORITY\NETWORK SERVICE就是Network Service。

 

切记重启IIS,最好重启服务器。。。

如果还不行,打开Windows任务管理器  找到FlashPaper进程 对应的用户 ,将该用户加入administrators组

再重启IIS   OK