jsFiddle:https://jsfiddle.net/0oa3uf9b/ (由于浏览器安全性等原因,我不知道您是否真的能够下载该文件,但如果您将其放在本地文件中,代码将工作得很好。)
我已经尝试了两种从HTML元素生成PDF的不同方法。每个方法都设置与源相同的元素;此div具有width: 4in和height: 2in。
对于方法1,我将jsPDF的format设置为来自jQuery的div的.width()和.height()值。
对于方法2,我将format设置为unit: "in"和format: [4,2]。
这两种方法都不能完全奏效。
方法1将正确生成pdf,但pdf的实际页面大小不是2x4in。
这是Adobe Reader DC告诉我关于PDF的内容:

方法2的页面大小正确为2x4英寸,但只为PDF生成了大量空白页面……
Adobe:

我不明白为什么当我为jsPDF指定2x4in的页面大小时,生成的PDF全是空白页面,而生成正确的PDF的唯一方法是使用width和height属性,那么它们就不是2x4in了,即使HTML/CSS设置为2x4in。
感谢您的帮助。
发布于 2021-07-03 04:50:05
由于某种原因,jsPDF对html2canvas的使用似乎被打破了,但是如果你自己调用html2canvas,你可以让它工作
下面是一个有效的jsFiddle:https://jsfiddle.net/k47zjb26/ (同样,在jsFiddle中似乎不能正常工作,请将其复制到本地文件中进行测试)
实际上,将您的任何jsPDF.html(source)调用替换为:
调用html2canvas,然后调用jsPDF.addImage()
html2canvas(source, {
scale: 1
}).then(function(canvas) {
document.body.appendChild(canvas);
doc.addImage(canvas, 'JPEG', 0, 0);
doc.save('MethodCanvas');
});https://stackoverflow.com/questions/68229863
复制相似问题