Я хочу напечатать диаграмму svg, которую я создал с помощью d3.js, используя jspdf
Я получаю узел svg и сериализую его.Затем создайте изображение, определив его источник.Затем я рисую изображение на элементе canvas и преобразую холст в URL-адрес данных, который я использую для добавления изображения через pdfjs.
в компоненте, где я создаю svg
public svgToDataURL(){
const svg = this.svg,
img = new Image(),
serializer = new XMLSerializer(),
svgStr = serializer.serializeToString(svg.node());
img.src = 'data:image/svg+xml;base64,'+window.btoa(svgStr);
console.log(img.src)
const canvas = document.createElement("canvas");
canvas.width = this.width;
canvas.height = this.height;
canvas.getContext("2d").drawImage(img,0,0,this.width,this.height);
return canvas.toDataURL("image/png");
};
в компонентегде я печатаю svg
@ViewChildren(RadarChart) radarCharts: QueryList<RadarChart>;
renderRadarsPDF() {
const doc = new jsPDF();
const uris = this.radarCharts.forEach((r, index) => {
const url = r.svgToDataURL();
doc.addImage(url, "PNG", 10, (index * 420) + 10, 400, 420);
});
doc.save('Test.pdf');
}
Он не выдает ошибку, но печатает пробел.Кроме того, когда я пытаюсь отобразить URL-адрес данных в браузере, он пуст