我正在评估princexml,到目前为止它非常好。但是一个小问题。有没有办法在浏览器中将highcharts生成的图形保存到princexml中?
我知道我需要在画布上将图形创建为图像,但不确定如何将图形提供给princexml。有什么想法吗?
答案 0 :(得分:3)
我在DocRaptor(HTML到PDF API,使用Prince XML进行PDF渲染)工作,我们刚刚发布了一篇关于将Highcharts添加到PDF的博客文章:
基本上,你只需要使用我们的JavaScript引擎(不同于Prince的JavaScript引擎,并在我们将这个过程交给Prince之前运行)并禁用渲染图形的代码中的动画。
答案 1 :(得分:2)
您可以做的一件事就是将HighCharts生成的SVG提供给王子。
这个解决方案的一个问题是IE8不会生成SVG,而是VML,王子无法渲染。您可以将javascript直接提供给Prince,但我们尚未测试此解决方案。
编辑:
我实际上只是用javascript来测试喂养Prince会产生SVG ......但是没有运气,所以我们坚持用预先渲染的SVG喂它。可能必须使用javascript运行时在服务器端执行此操作。
答案 2 :(得分:0)
PrinceXML的JavaScript引擎似乎不足以用Highcharts等组件制作图表。
所以我所做的就是将我的页面运行到PhantomJS,这样就可以运行JS并在DOM中创建SVG元素,然后将结果提供给PrinceXML。
请务必禁用动画,否则您将打印它的第0帧:
Highcharts.setOptions({
plotOptions: {
series: {
animation: false //Animations prevent proper PDF generation of charts!
}
}
});