Html2canvas jspdf剪掉图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Html2canvas jspdf剪掉图片相关的知识,希望对你有一定的参考价值。
我想在我的项目中制作一个元素的pdf,但图像一直在右边被切掉,我使用jspdf和html2canvas。
这就是我想要的
这是我在pdf中得到的东西。
正如你所看到的,图像不适合正确的宽度。
我已经尝试了以下方法。
Html2Canvas图像被切割https:/tutel.mecprogrammingquestions44796908jspdf+html2canvas++html++images+cut-off+capture。https:/www.reddit.comrlearnjavascriptcommentscnn7q4anyone_experience_with_jspdf_my_image_is_cut_offhtml2canvas离屏
但是这些都不行。
这是我的代码。
const offerteId = $(e).data("id"),
card = document.querySelector('.body-pdf-' + offerteId + ''),
filename = offerteId + '.pdf';
html2canvas(card).then(function(canvas) {
const img = canvas.toDataURL("image/png"),
pdf = new jsPDF({
orientation: 'p',
unit: 'mm',
format: 'a4',
});
// Optional - set properties on the document
pdf.setProperties({
title: offerteId.toString(),
subject: 'Offerte: ' + offerteId.toString(),
});
const imgProps = pdf.getImageProperties(img);
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
pdf.addImage(img, 'JPEG', 0, 0, pdfWidth, pdfHeight);
pdf.save(filename);
});
希望有人能帮忙
答案
每次 html2canvas
改变你的元素的宽度和高度,在你的例子中,改变了 'card'
元素。
你应该使用 scale: 1
和 html2Canvas
将与你在第一时间设置的宽度和高度。
const options = { scale: 1 }
html2canvas(card, options).then(function(canvas) { /*your code*/ }
以上是关于Html2canvas jspdf剪掉图片的主要内容,如果未能解决你的问题,请参考以下文章
使用jspdf和html2canvas导出pdf文件分页时如何正常留白?
jsPDF, html2canvas, PHPMailer, 再次......!将 PDF 附加到邮件
html2canvas + jspdf 实现 html 转 pdf