我想从html页面生成pdf(angular 2& highchart)。
方法htmlToPdf.GeneratePdfFromFile(“http://plnkr.co/edit/c4ojcIRVOOwq7xmk9kfx?p=preview
”,null,“export.pdf”)返回空白页。
但是https://www.highcharts.com/demo/polar
会返回完美的高图。
是否有任何解决方案。
谢谢,
答案 0 :(得分: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。