最近在做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();
}
}
问题搞定!