我想用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,所以你必须写
window.html2canvas = html2canvas;
你叫html()
在什么地方。
这就是说,我不能让它无论是工作,所以我使出a wrapper通过调用然后手动html2canvas()
给人造成画布jsPDF解决此问题的作品。
继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");
}
});
}