我有一个页面,上面有四个折线图。通过
exporting: {
enabled: false
}
我能够看到Highcharts生成的导出下拉列表,其中包含每个图表上的“下载为PDF”等选项。这些导出选项不涉及对服务器的任何访问。这是一个纯粹的客户端解决方案。
我想知道是否有任何方法可以在浏览器中使用Javascript,允许我在一个PDF文档中导出页面上的所有图表?
谢谢和问候。
答案 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的默认行为