Javascript Highcharts导出PDF-用于动态插入的系列
我已经动态插入了highcharts系列,我一直在尝试将图表导出为PDF格式,如下所示 小提琴示例: 更新代码:Javascript Highcharts导出PDF-用于动态插入的系列,javascript,jquery,pdf,highcharts,Javascript,Jquery,Pdf,Highcharts,我已经动态插入了highcharts系列,我一直在尝试将图表导出为PDF格式,如下所示 小提琴示例: 更新代码: // getMyChart() starts function getMyChart() { var myChart; Highcharts.setOptions({ lang: { thousandsSep: ',', nu
// getMyChart() starts
function getMyChart() {
var myChart;
Highcharts.setOptions({
lang: {
thousandsSep: ',',
numericSymbols: ['M']
}
});
var options = {
chart : {
renderTo : 'container',
type : 'area'
},
xAxis : {
lineWidth: 0,
categories : []
},
yAxis : [ {
title : {
text : 'Averages',
},
lineWidth: 0,
} ,
{
title : {
text : 'Values',
},
opposite: true,
lineWidth: 0,
}],
series : []
};
// jQuery
$.get(url, function(xml) {
var $xml = $(xml);
$xml.find('categories Date').each(
function(i, category) {
options.xAxis.categories.push($(category).text());
});
$xml.find('type Series').each(
function(i, series) {
var seriesOptions = {
name : $(series).find('name').text(),
data : []
};
$(series).find('data point').each(
function(i, point) {
seriesOptions.data.push(parseInt($(point).text()));
});
options.series.push(seriesOptions);
});
myChart = new Highcharts.Chart(options);
});
//jquery ends
// .getSVG function
Highcharts.getSVG = function(charts) {
var svgArr = [],
top = 0,
width = 0;
$.each(charts, function(i, chart) {
var svg = chart.getSVG();
svg = svg.replace('<svg', '<svg transform="translate(0,' + top + ')" ');
svg = svg.replace('</svg>', '</svg>');
top += chart.chartHeight;
width = Math.max(width, chart.chartWidth);
svgArr.push(svg);
});
console.log(svgArr);
return '<svg height="'+ top +'" width="' + width + '" version="1.1" xmlns="http://www.w3.org/2000/svg">' + svgArr.join('') + '</svg>';
};
Highcharts.exportCharts = function(charts, options) {
options = Highcharts.merge(Highcharts.getOptions().exporting, options);
Highcharts.post(options.url, {
filename: options.filename || 'Pulse_Chart',
type: options.type,
width: options.width,
svg: Highcharts.getSVG(charts)
});
};
$('#export').click(function() {
Highcharts.exportCharts([myChart], {type: 'application/pdf'});
});
} // getMyCharts ends
我使用jQuery动态插入序列
有可能输出这样的图表吗?谁能指出我哪里出了问题?
感谢您的时间和帮助。对于Highcharts,无论您如何加载系列(在init上或使用
addSeries()
),当前图表都以PDF格式导出。你有什么问题?也许最好发布你的实际代码,而不是有效的代码。@PawełFus我已经在这里发布了我的实际代码。您能告诉我应该做什么吗?您可以看到,chart
是未定义的,因为您在本地范围中定义了chart:var chart=new Highcharts.chart(选项)代码>。事实上,您应该在代码的开头定义图表:var图表编码>然后使用chart=newhighcharts.chart(选项)代码>。哦,谢谢!我纠正了它,我得到了这个错误SCRIPT438:对象不支持属性或方法“getSVG”
。我甚至添加了这个
,你能用这些更改更新你的代码吗?很难猜出什么是错的:)也许尝试使用不同的变量,不是chart
,而是myChart
?
<div id="container" class="myChart" style="width: 100%; height: 500px; margin: 0 auto"></div>
<button id="export">Export all</button>
SCRIPT5009: 'chart' is undefined