Witam.
Mam wykres narysowany w nvd3, chcę go wyeksportować do PNG/JPEG. Niestety mam taki problem że po kliknięciu przycisku, obrazek owszem pobiera się, jednak tylko jego mały fragment. Na dodatek zamiast czcionki są jakieś kropki, kreski. Spotkał się ktoś z czymś takim?
/
//.....
$('#export_to_png').click( function() {
var html = d3.select("#chart svg")
.attr("version", 1.1)
.attr("xmlns", "http://www.w3.org/2000/svg")
.node().parentNode.innerHTML;
var imgsrc = 'data:image/svg+xml;base64,'+ btoa(html);
var img = '
<img src="'+imgsrc+'">';
$('#mycanvas').append(img);
var canvas = document.querySelector("canvas"),
context = canvas.getContext("2d");
var image = new Image;
image.src = imgsrc;
image.onload = function() {
context.drawImage(image, 0, 0);
var canvasdata = canvas.toDataURL("image/png");
var pngimg = '
<img src="'+canvasdata+'">';
var a = document.createElement("a");
a.download = "chart.png";
a.href = canvasdata;
//a.click();
};
});
});
<button class="ui-widget ui-corner-all ui-state-default" id="export_to_png" style="cursor: pointer" type="button">Export to PNG
</button>
<canvas id="mycanvas" style="height: 900px; width: 100%"></canvas>
<div id="chart" style="height: 900px; width: 100%"> <svg style="height: 100%">
</svg>