首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsPDF单位和HTML单位在生成的PDF中不对齐

jsPDF单位和HTML单位在生成的PDF中不对齐
EN

Stack Overflow用户
提问于 2021-07-03 02:28:49
回答 1查看 118关注 0票数 0

jsFiddle:https://jsfiddle.net/0oa3uf9b/ (由于浏览器安全性等原因,我不知道您是否真的能够下载该文件,但如果您将其放在本地文件中,代码将工作得很好。)

我已经尝试了两种从HTML元素生成PDF的不同方法。每个方法都设置与源相同的元素;此div具有width: 4inheight: 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。

感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-07-03 04:50:05

由于某种原因,jsPDF对html2canvas的使用似乎被打破了,但是如果你自己调用html2canvas,你可以让它工作

下面是一个有效的jsFiddle:https://jsfiddle.net/k47zjb26/ (同样,在jsFiddle中似乎不能正常工作,请将其复制到本地文件中进行测试)

实际上,将您的任何jsPDF.html(source)调用替换为:

调用html2canvas,然后调用jsPDF.addImage()

代码语言:javascript
复制
html2canvas(source, {
    scale: 1
}).then(function(canvas) {
    document.body.appendChild(canvas);
    doc.addImage(canvas, 'JPEG', 0, 0);
    doc.save('MethodCanvas');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68229863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档