Download Highchart as PNG - V2
Use canvg and msSaveOrOpenBlob for IE compatibility
by Deepak Pookkote
HTML
<script src="http://code.highcharts.com/4.0.4/highcharts.js"></script>
<script src="http://code.highcharts.com/4.0.4/modules/exporting.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/amcharts/3.10.0/exporting/canvg.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/amcharts/3.10.0/exporting/rgbcolor.min.js"></script>
<button id='save_btn'>Save Chart</button>
<div id='container'></div>
CSS
#container {
max-width: 800px;
height: 400px;
margin: 1em auto;
}
JavaScript
EXPORT_WIDTH = 1000;
function save_chart(chart, filename) {
var render_width = EXPORT_WIDTH;
var render_height = render_width * chart.chartHeight / chart.chartWidth
var svg = chart.getSVG({
exporting: {
sourceWidth: chart.chartWidth,
sourceHeight: chart.chartHeight
}
});
var canvas = document.createElement('canvas');
canvas.height = render_height;
canvas.width = render_width;
canvg(canvas, svg, {
scaleWidth: render_width,
scaleHeight: render_height,
ignoreDimensions: true
});
download(canvas, filename + '.png');
}
function download(canvas, filename) {
download_in_ie(canvas, filename) || download_with_link(canvas, filename);
}
// Works in IE10 and newer
function download_in_ie(canvas, filename) {
return(navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob(canvas.msToBlob(), filename));
}
// Works in Chrome and FF. Safari just opens image in current window, since .download attribute is not supported
function download_with_link(canvas, filename) {
var a = document.createElement('a')
a.download = filename
a.href = canvas.toDataURL("image/png")
document.body.appendChild(a);
a.click();
a.remove();
}
$(function() {
$('#container').highcharts({
"legend":{
"enabled":true,
"itemStyle":{
"fontSize":"11px"
},
"floating":false
},
"chart":{
"zoomType":null,
"spacingBottom":0,
"spacingTop":10,
"type":"line",
"renderTo":"applicationDiv0"
},
"title":{
"useHTML":true,
"style":{
"fontFamily":[
"Arial Narrow"
],
"fontSize":"12pt",
"margin-left":"100px",
"wordWrap":"break-word",
"text-align":"center"
},
"align":"center",
"text":"<p>Header Line Text</p><p>Line 2</p>Line 3",
"margin":10
},
"xAxis":{
"labels":{
},
...