解决 pdf2swf 转换时报错。This file is too complex to render- SWF only supports 65536 shapes at once

最近在做Flexpaper  + PDF2SWF工具,实现在线预览的时候

 

有些PDF无法转换,在CMD模式下也是一样的问题

 

后来通过百度查找到如下解决方案,主要是由于文件内容过大、复杂,默认的参数无法进行转换

 

代码如下:

string cmdStr = HttpContext.Current.Server.MapPath("../UI/SWFTools/pdf2swf.exe");
string sourcePath = @"""" + sourceFileName + @"""";
string targetPath = @"""" + ViewTempPath + targetFileName + ".swf" + @"""";
//@"""" 四个双引号得到一个双引号,如果你所存放的文件所在文件夹名有空格的话,要在文件名的路径前后加上双引号,才能够成功
// -t 源文件的路径
// -s 参数化(也就是为pdf2swf.exe 执行添加一些窗外的参数(可省略))
//-T 9生成flash 9以上版本,否则无法预览 20140426
string argsStr = sourcePath + " -o " + targetPath + " -T 9 -s poly2bitmap";

ExcutedCmd(cmdStr, argsStr);
        /// 
        /// 执行CMD命令
        /// 
        /// 
        /// 
        private void ExcutedCmd(string cmd, string args)
        {
            using (Process p = new Process())
            {
                ProcessStartInfo psi = new ProcessStartInfo(cmd, args);
                p.StartInfo = psi;
                p.Start();
                p.WaitForExit();
            }
        }
问题搞定!

你可能感兴趣的:(前台脚本)