Html2canvas против jspdf не может экспортировать SVG в PDF-файл - PullRequest
0 голосов
/ 08 ноября 2018

Я использую html2canvas против jsPDF в своем проекте Reactjs, и у меня был обязательный объект экспорта DOM-узла в PDF-файл. Когда я экспортировал, HTML и CSS были сохранены, а SVG - нет. Я не знаю почему. Есть другой пакет на клиенте может помочь мне? Спасибо за ваше внимание. Вот мой код для экспорта

const filename = 'TyVan.pdf';
    html2canvas(document.querySelector('#buivanty'),{scale: quality}).then(canvas => {
        let pdf = new jsPDF('l', 'mm', 'a4', true)

        pdf.addImage(canvas.toDataURL('image/png', 1.0), 'png', 10, 10, 180, 150);
        pdf.save(filename);
    })

1 Ответ

0 голосов
/ 08 ноября 2018

Мне удалось решить эту проблему, выполнив постобработку с использованием опции onClone

const options = {
  scale: 1,
  foreignObjectRendering: true,
  onclone: (element) => {
    const svgElements: any[] = element.body.getElementsByTagName('svg');
    Array.from(svgElements).forEach((svgElement) => {
        const bBox: any = svgElement.getBBox();
        svgElement.setAttribute('width', bBox.width);
        svgElement.setAttribute('height', bBox.height);
    });
  },
};

  html2canvas(<HTMLScriptElement>document.querySelector('.main-container'), options).then(canvas => {
      this.clipImage = canvas.toDataURL('image/png');
  });
...