0

我有一个项目需要使用 pdf2swf 将 pdf 转换为 swf。我在 windows 上使用 swftool 0.9.1。文件 pdf2swf.exe 在上传文件夹中。我想自动转换。我在 Asp.net 开发服务器上使用它。我使用这段代码:

protected void Page_Load(object sender, EventArgs e)
{
    System.Diagnostics.Process p = new System.Diagnostics.Process();

    p.StartInfo.UseShellExecute = false;

    p.StartInfo.RedirectStandardOutput = true;

    p.StartInfo.CreateNoWindow = true;

    p.StartInfo.RedirectStandardError = true;

    p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~");

    p.StartInfo.FileName = HttpContext.Current.Server.MapPath("~/upload/pdf2swf.exe");

    p.StartInfo.Arguments = " -b " + "alo.pdf" + " -o " + "alo" + ".swf";

    //Start the process

    p.Start();
    TextBox1.Text = p.StandardOutput.ReadToEnd();
    TextBox2.Text = p.StandardError.ReadToEnd();
    p.WaitForExit();
    p.Close();
}

当我在浏览器中查看此页面时,此页面显示正常,没有错误。但最重要的是文件 .swf 没有创建。请帮助我如何解决它!谢谢你的帮助!我试图从 Web 应用程序运行 pdf2swf。当我在浏览器中查看此页面时,字符串错误输出为:错误:无法打开文件“alo.pdf”。但它是存在的。

4

1 回答 1

1

确保p.StartInfo.WorkingDirectory指向 pdf 文件所在的目录。如果这些文件在上传目录中,则应该是:

 p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~/upload");

此属性指定 pdf2swf 的工作目录(如果未指定路径,则 pdf2swf 将在其中搜索文件的默认目录)。目前它将在HttpContext.Current.Server.MapPath("~")目录中搜索 PDF 文件。

于 2013-04-01T12:50:57.483 回答