日期:2014-05-17  浏览次数:20437 次

使用FlashPrinter将word,excel,pdf转换成swf失败的问题
我在ASP.NET程序中使用FlashPrinter.exe将word,excel,pdf,ppt转换成swf,在本地运行

(localhost)时,全部能转换成功,但是放在IIS上,却只有pptx能转换成功,其中在转换docx和

xlsx的文件时,直接卡死。而转换pdf却执行完毕后没有生成swf文件。

我已经将FlashPrinter.exe所在文件夹赋予了权限,Network Service账号添加至administrators

组,IIS的应用程序池中的标识预定义账户修改成本地系统。并且在IIS上能转换pptx,应该不是权

限问题。我写了两个方法,但是两个方法都出现这样的问题,代码如下,在线等,有答案马上结

贴,本人结贴率100%。谢谢了!


        private void ConvertSwf(string inputPath, string outputPath) 
        {
            Process p = new Process();
            try
            {
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;//不适应系统外壳程序启动
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.CreateNoWindow = true;//不创建窗口
                p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                p.Start();

                string strOutput = null;
                //string inputPath = Server.MapPath("~//11.docx");
                //string outputPath = Server.MapPath("~//11.swf");
                //D:\Asp.NetPro\PPTToSwf\swftools\FlashPaper\FlashPaper2.2\\FlashPrinter.exe
                //D:\\Asp.NetPro\\PPTToSwf\\swftools\\FlashPaper2.2\\FlashPrinter.exe
                string s = "D:\\Asp.NetPro\\PPTToSwf\\swftools\\FlashPaper\\FlashPaper2.2\\FlashPrinter.exe "
                    + "\"" + inputPath + "\" -o \"" + outputPath + "\"";

                p.StandardInput.WriteLine(s);
                p.StandardInput.WriteLine("exit");
                strOutput = p.StandardOutput.ReadToEnd();
           &nbs