如何在princeXML中使用highcharts?

时间:2012-02-27 21:19:36

标签: highcharts princexml

我正在评估princexml,到目前为止它非常好。但是一个小问题。有没有办法在浏览器中将highcharts生成的图形保存到princexml中?

我知道我需要在画布上将图形创建为图像,但不确定如何将图形提供给princexml。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我在DocRaptor(HTML到PDF API,使用Prince XML进行PDF渲染)工作,我们刚刚发布了一篇关于将Highcharts添加到PDF的博客文章:

Adding Highcharts to PDFs

基本上,你只需要使用我们的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!
                    }
                }
            });