jsPDF:html2canvas未加载,而使用新的.html()方法

问题描述 投票:1回答:2

我想用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用的WebPack。

在同一页我目前使用或者与下面的代码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。

是什么html2canvas not loaded究竟意味着什么?我能做些什么来加载它?

jspdf html2canvas html2pdf
2个回答
6
投票

jsPDF需要在全球范围内工作被宣布html2canvas,所以你必须写

window.html2canvas = html2canvas;

你叫html()在什么地方。

这就是说,我不能让它无论是工作,所以我使出a wrapper通过调用然后手动html2canvas()给人造成画布jsPDF解决此问题的作品。


2
投票

继qazxsw POI以前的答案,这应该工作:

ptidus

也有一些是与关闭可能是利润,但我没有探索太多。您还会注意到,生成的PDF实际上是文本,而不是图像。

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

© www.soinside.com 2019 - 2024. All rights reserved.