#highcharts #jspdf
#диаграммы #jspdf
Вопрос:
Я пытаюсь сгенерировать PDF-файл из графика высокого уровня. График отображается правильно на созданном холсте, но созданный PDF-файл имеет только «черное» пятно.
var trendChart=$("#trendChart").highcharts();
let trendSvgString = trendChart.getSVG({
exporting: {
sourceWidth: trendChart.chartWidth,
sourceHeight: trendChart.chartHeight
}
});
let parser = new DOMParser();
var EXPORT_WIDTH = 1000;
var render_width = EXPORT_WIDTH;
var render_height = render_width * trendChart.chartHeight / trendChart.chartWidth
var canvas = document.createElement('canvas');
canvas.height = render_height;
canvas.width = render_width;
document.body.appendChild(canvas);
var ctx = canvas.getContext("2d");
var image = new Image;
image.onload = function() {
canvas.getContext('2d').drawImage(this, 0, 0, render_width, render_height);
};
image.src = 'data:image/svg xml;base64,' window.btoa(trendSvgString);
var dataURL = canvas.toDataURL("image/jpeg");
console.log(dataURL);
var doc = new window.jspdf.jsPDF('p','pt','a4');
doc.addImage(dataURL, 'JPEG', 10, 10, 500, 200);
doc.save('a4.pdf')
console.log('pdf generated');
Чего здесь может не хватать?
Комментарии:
1.Я бы предложил использовать специальное решение для экспорта файлов в highcharts — в зависимости от ваших потребностей: экспорт на стороне клиента или ваш собственный экспорт-сервер: highcharts.com/docs/export-module/client-side-export highcharts.com/docs/export-module/setting-up-the-server
2. @madepiet Я хочу сделать это чисто на стороне клиента и, следовательно, вопрос.