解决 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);
        /// <summary>
        /// 执行CMD命令
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="args"></param>
        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();
            }
        }
问题搞定!
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值