【发布时间】:2019-01-24 13:18:52
【问题描述】:
我正在尝试将客户端临时和本地的 HTML 内容转换为真实图片。我做了我的研究canvas2base64canvas2base64html2base64,但没有生成真实的图片,它始终是基于base64代码的“图像”。
它做我想做的事。它会生成我想要的质量的图片。但问题是,我想用 jsPDF 将此图像放入 PDF,当图像是 base64 代码时,它无法将其放入 PDF。
我正在使用以下所有脚本:jquery.js、jspdf.js、html2canvas.js 和 FileSaver.js
有没有办法从画布中临时生成像 *.png 或 *.jpg 这样的真实图像,它不是基于 base64 代码并保存在用户的 localStorage 中?所以我可以引用它并在我的代码中使用它?
下面的代码应该会生成图像,然后将图像放入 DIN A4 大小的 PDF 中。
function print() {
//const filename = 'Loveletter_.pdf';
html2canvas(document.querySelector('.finishedLetter')).then(function(canvas) {
var pdf = new jsPDF('p', 'mm', 'a4');
$("#test_me").attr("src", canvas.toDataURL("image/png", 1.0));
var ImgForPDF = document.getElementById('test_me').getAttribute('src');
pdf.addImage(ImgForPDF, 'PNG', 0, 0, 211, 298);
});
pdf.save('Loveletter_.pdf');
}
【问题讨论】:
-
简而言之,您想从 HTML 内容创建 PDF。对吧??
-
是的。我尝试绕过 html 到图像到 pdf,因为我想保留我的 CSS 样式,但我没有找到其他方法。我正在编写一个 Loveletter 生成器。单击短语并完成字母后,您将有几种不同的样式可供选择。在您决定了您想要的样式后,您可以使用您选择的样式将您的 Loveletter 下载为 PDF。
标签: javascript jquery html css jspdf