Я пытаюсь добавить SVG к документу PDF. Я использую библиотеку jsPDF. SVG извлекается из диаграммы D3, представленной на веб-странице. Я использую функцию window.btoa()
для преобразования SVG в строку base64. Чтобы сделать его действительным изображением, я добавляю data:image/svg+xml;base64,
в начало строки.
const unit = "pt";
const size = "A4"; // Use A1, A2, A3 or A4
const orientation = "landscape"; // portrait or landscape
...
const doc = new jsPDF(orientation, unit, size);
var svg = document.getElementById("svg");
var s = new XMLSerializer().serializeToString(svg);
var img = "data:image/svg+xml;" + window.btoa(s);
doc.addImage(img, 0, 0, 100);
Это приводит к ошибке:
Uncaught Error: Supplied Data is not a valid base64-String
Я попытался просто отобразить содержание через <img src="data:..."/>
, которое работает. Я также пытался использовать внешние инструменты для преобразования svgs в base64 и использовать эту строку c. Это приводит к той же ошибке.
Я понимаю, что есть похожие вопросы, но, похоже, нет ни одного, который бы касался отклонения строки base64.