html2canvas+jspdf 图片很多 截图显示不全
就很无语 时好时坏
```
export const downloadPDF = (ele) => {
var element: any = window.document.querySelector(ele); // 这个dom元素是要导出pdf的div容器
if (!element) return;
const options = {
allowTaint: true,
height: element.scrollHeight,
windowHeight: element.scrollHeight,
useCORS: true,
};
html2canvas(element, options).then(function (canvas) {
var contentWidth = canvas.width;
var contentHeight = canvas.height;
console.log("contentWidth", contentWidth);
console.log("contentHeight", contentHeight);
var pageData = canvas.toDataURL("image/jpeg", 1.0);
// 设置pdf的尺寸,pdf要使用pt单位 已知 1pt/1px = 0.75 pt = (px/scale)* 0.75
// 2为上面的scale 缩放了2倍
var pdfX = ((contentWidth + 10) / 2) * 0.75;
var pdfY = ((contentHeight + 500) / 2) * 0.75; // 500为底部留白
// 设置内容图片的尺寸,img是pt单位
var imgX = pdfX;
var imgY = (contentHeight / 2) * 0.75; //内容图片这里不需要留白的距离
// 初始化jspdf 第一个参数方向:默认''时为纵向,第二个参数设置pdf内容图片使用的长度单位为pt,第三个参数为PDF的大小,单位是pt
var pdf = new jsPDF("p", "pt", [pdfX, pdfY]);
// 将内容图片添加到pdf中,因为内容宽高和pdf宽高一样,就只需要一页,位置就是 0,0
pdf.addImage(pageData, "jpeg", 0, 0, imgX, imgY);
pdf.save(`11.pdf`);
message.success({
content: "报告生成成功",
key: 11,
});
});
};
```
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论