【发布时间】: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