【问题标题】:pdf Created after program exitspdf 程序退出后创建
【发布时间】:2014-07-29 06:57:51
【问题描述】:

我正在使用 wkhtmltopdf 在控制台应用程序 c#.net 中创建 pdf

以下是代码和

psi.UseShellExecute = false;
psi.FileName = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
psi.CreateNoWindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;

psi.Arguments = "--enable-javascript --no-stop-slow-scripts --javascript-delay 10000 --page-size A4 --dpi 300 --margin-top 20mm --header-html D:\\header.html --margin-bottom 10mm  - --footer-html D:\\footer.html  " + tempPath + "\\" + outFileName;
p = Process.Start(psi);

try
{
    stdin = p.StandardInput;
    stdin.AutoFlush = true;

    stdin.Write(HTML);
    stdin.Close();

    p.WaitForExit(60000);

}
finally
{
    p.Close();
    p.Dispose();
}

我希望 wkhtmltopdf.exe 在 waitforexit 行退出

但我仍然可以在内存中看到它,并且 pdf 是用 0kb 创建的

如果我关闭我的控制台应用程序,则会正确创建 pdf

只有当我在参数中使用页眉和页脚 html 时才会出现此问题,否则它可以正常工作。

【问题讨论】:

  • 我用wkhtmltopdf已经有一段时间了,但是页眉和页脚的文件路径需要在引号中吗? (对于其他不熟悉 wkhtmltopdf 的用户,这些只是命令行参数)
  • 没有。在我的控制台应用程序关闭后,它会很好地生成 pdf
  • 我没有使用 wkhtmltopdf 的经验,但请查看this question 以了解可能的问题描述。并在this one 上寻求可能的解决方案
  • 我刚刚检查了我的旧代码,它确实用引号包围了页眉/页脚的文件路径(我在此评论背后的想法是它一直在试图破译名称)
  • 我尝试过使用引号,没有任何区别,它也是在关闭我的控制台窗口后创建的

标签: c# wkhtmltopdf


【解决方案1】:

感谢大家的贡献

我终于破解了

我在参数中添加了 -q,效果很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 2012-11-15
    • 1970-01-01
    • 2012-10-14
    • 2014-02-07
    • 2023-04-10
    相关资源
    最近更新 更多