我正在使用 wkhtmltopdf 从给定的 HTML 创建 PDF。基本上我们有一些基于图形/图表的报告,所以我们使用 C# 代码创建 HTML,然后使用 WKHTMLTOPDF 创建 PDF。它工作正常,但昨天它停止创建 PDF。我尝试在没有任何错误或消息的情况下调试和处理作品。只是我们没有得到 PDF 作为输出。我尝试从命令行运行和使用 Wkhtmltopdf.exe,它确实创建了具有预期所有详细信息的 PDF。
我的代码是
public static bool HTMLtoPDF(string HTMLPath, string PDFPath, PageOrientation orientation)
{
using (System.Diagnostics.Process proc = new System.Diagnostics.Process())
{
string dir = Path.GetDirectoryName(Assembly.GetAssembly(typeof(Vikasumit.VSCommon)).Location) + "\\wkhtmltopdf\\";
proc.StartInfo.WorkingDirectory = dir;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = dir + "wkhtmltopdf.exe";
if (orientation == PageOrientation.Landscape)
{
proc.StartInfo.Arguments = " --page-width 11in --page-height 8.5in --margin-left 0.5cm --margin-right 0 --margin-top 1.25cm --margin-bottom 0 " + HTMLPath + " " + PDFPath;
}
else
{
proc.StartInfo.Arguments = " --page-width 8.5in --page-height 11in --margin-left 0.5cm --margin-right 0 --margin-top 1.25cm --margin-bottom 0 " + HTMLPath + " " + PDFPath;
}
proc.Start();
proc.WaitForExit();
string result = proc.StandardOutput.ReadToEnd();
proc.Close();
proc.Dispose();
}
return false;
}
确实这很好用,此代码适用于只有一页或两页的 PDF,但此报告有 800 页 [大约 1.2MB HTML 文件和来自命令行的输出文件大约 2.3MB。]
知道这里可能出了什么问题吗?分配给任务的内存是有限的还是什么?谢谢。