Може да ползваш
dom-to-image.
Ето пример с първото демо на плъгина, тъй като не си показал примерни чартове:
https://jsfiddle.net/FakeHeal/zgmce7a3/
Целия код е:
[js]
domtoimage.toSvg($("#example_1").get(0))
.then(function(dataUrl) {
var img = new Image();
img.src = dataUrl;
document.body.appendChild(img);
console.log(dataUrl)
}).catch(function(error) {
console.error('oops, something went wrong!', error);
});
[/js]
А, за да запишеш картинката като файл, просто с ajax направи post request, в който подаваш
dataUrl, което е base64 на svg-то.
Сървърно може да си го декоднеш и запишеш във файл (или да не го декодваш, ако не искаш. Idk, I am not your mom).