Highcharts:如何从浏览器导出多个图表?

时间:2014-09-21 12:38:50

标签: highcharts

我有一个页面,上面有四个折线图。通过

exporting: {
    enabled: false
}

我能够看到Highcharts生成的导出下拉列表,其中包含每个图表上的“下载为PDF”等选项。这些导出选项不涉及对服务器的任何访问。这是一个纯粹的客户端解决方案。

我想知道是否有任何方法可以在浏览器中使用Javascript,允许我在一个PDF文档中导出页面上的所有图表?

谢谢和问候。

1 个答案:

答案 0 :(得分:1)

好吧,我讨厌成为那个打破这个问题的人,但需要做出一个澄清,默认的导出选项并不是真正纯粹的客户端。他们利用highcharts' own exporting server,可以使用exporting.url配置选项覆盖导出服务器的URL

url:                            String
The URL for the server module converting the SVG string to an image format. 
By default this points to Highslide Software's free web service. Defaults to http://export.highcharts.com.

您可能需要阅读他们的disclaimer & privacy statement&阅读有关导出模块here

的更多信息

您可以考虑setting up your own exporting server,并覆盖导出功能以发送页面上所有图表的SVG,并在服务器端进行拼接并发回图像。

exporting: {
    buttons: {
        contextButton: {
            menuItems: [{
                text: 'Export All Charts',
                onclick: function() {
                    var allCharts=Highcharts.charts;
                    var svgArray=[];
                    for(var i=0;i<Highcharts.charts.length;i++){
                        svgArray[]=Highcharts.charts[i].getSVG();
                    }     
                    // ... Post svgArray to your exporting server                        
                }                    
            }]
        }
    }
}

话虽如此,现代浏览器确实支持保存HTML5画布元素的内容,请检查使用this jsFiddle库导出单个图表的canvg P.S。这不是highcharts的默认行为