0

我正在尝试从 html 页面(角度 2 和 highchart)生成 pdf。

方法 htmlToPdf.GeneratePdfFromFile(" http://plnkr.co/edit/c4ojcIRVOOwq7xmk9kfx?p=preview", null, "export.pdf") 返回空白页。

https://www.highcharts.com/demo/polar返回完美的高图。

是否有任何解决方案。

谢谢,

4

1 回答 1

0

NReco.PdfGenerator 在内部执行 wkhtmltopdf,它可以渲染基于 SVG 的 Highcharts。在您的情况下,问题出在与 angular2 相关的 JS 代码中,由于某种原因,它执行时出错。您可以通过添加“--javascript-debug”选项来获得此错误:

var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.LogReceived += (sender,a) => {
    Console.WriteLine("---> {0}", a.Data);
};
htmlToPdf.CustomWkHtmlArgs = " --javascript-debug --javascript-delay 3000 "

(LogReceived 处理来自 wkhtmltopdf 控制台日志的行)。

不要忘记 wkhtmltopdf 基于 WebKit-QT 4.x,它只能执行“经典”的 ES5 javascript。

我可能会建议避免使用 Angular2 或 ReactJS 等 SPA 框架来生成用作 PDF 模板的 HTML。作为替代方案,您可以在 Web 浏览器(或 nodejs)中使用 Angular2 生成 HTML,然后将此 HTML 传递给 PdfGenerator 以生成 PDF。

于 2017-05-09T12:07:26.767 回答