jsPDF: html2canvas не загружается при использовании нового метода .html () - PullRequest
0 голосов
/ 10 января 2019

Я хочу использовать jsPDF.html для преобразования html-страницы в pdf, и я использую этот код:

savePdf () {
  var pdf = new jsPDF({unit: 'mm', format: 'a4', orientation: 'portrait' })
  pdf.html(document.getElementById('printable-cv'), {
    callback: function (pdf) {
      pdf.save('cv-a4.pdf');
    }
  })
}

но я получаю ошибку html2canvas not loaded: я что-то забыл? У меня есть html2canvas

"html2canvas": "^ 1.0.0-alpha.12"

Я использую vuejs с веб-пакетом.

На той же странице я сейчас использую альтернативно html2pdf со следующим кодом:

savePdf0 () {
  let opt = {
    filename: 'cv.pdf',
    enableLinks: true,
    image: { type: 'jpeg', quality: 0.98 },
    html2canvas: {
      scale: 8,
      useCORS: true,
      width: 310,
      letterRendering: true,
    },
    jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
  }
  html2pdf().set(opt).from(document.getElementById('printable-cv')).save()
}

, который правильно находит html2canvas.

Что на самом деле означает * 1022? что я могу сделать, чтобы загрузить его?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Следуя предыдущему anser по ptidus , это должно работать:

saveAsPdf() {
  window.html2canvas = html2canvas;
  var doc = new jsPDF(
    'p', 'pt', 'a4'
  );
  doc.html(document.querySelector("body"), {
    callback: function(pdf) {
      pdf.save("cv-a4.pdf");
    }
  });
}

Возможно, что-то не так с полями, но я не слишком много изучал. Вы также заметите, что сгенерированный PDF на самом деле является текстом, а не изображением.

пример кода

0 голосов
/ 14 января 2019

jsPDF необходимо html2canvas, чтобы быть объявленным в глобальной области видимости, чтобы работать, поэтому вы должны написать

window.html2canvas = html2canvas;

где-то, прежде чем позвонить html().

Тем не менее, я тоже не смог заставить его работать, поэтому я прибегнул к оболочке , которая решает проблему, вызвав вручную html2canvas(), а затем предоставив полученный холст jsPDF.

...