首先,需要安装两个库
/**
path:src/utils/htmlToPdf.js
name:导出页面为pdf格式
**/
import html2Canvas from "html2canvas@1.4.1";
import JsPDF from "jspdf@2.5.1";
const htmlToPdf = {
getPdf(title) {
html2Canvas(document.querySelector('#pdfDom'), {
allowTaint:true,
}).then((canvas) => {
//内容的宽度
let contentWidth = canvas.width;
//内容高度
let contentHeight = canvas.height;
//一页pdf显示html页面生成的canvas高度,a4纸的尺寸(595.28,841.89)
let pageHeight = (contentWidth / 592.28) * 841.89;
//未生成pdf的html页面高度
let leftHeight = contentHeight;
//页面偏移
let position = 0;
//a4纸的尺寸(595.28,841.89),html页面生成的canvas在pdf中图片的宽高
let imgWidth = 595.28 ;
let imgHeight = (592.28 / contentWidth) * contentHeight;
//canvas转图片数据
let pageData = canvas.toDataURL("image/jpeg",1.0) ;
//新建JsPDF对象(a:横线排列还是竖向排列,b:单位,c:a4纸)
let PDF = new JsPDF("","pt","a4")
debugger;
//判断是否分页
if(leftHeight < pageHeight ) {
PDF.addImage(pageData,"JPEG",0,0,imgWidth,imgHeight) ;
} else {
while(leftHeight > 0) {
PDF.addImage(
pageData,
"JPEG",
0,
position,
imgWidth,
imgHeight
);
leftHeight -= pageHeight;
position -= 841.89;
if(leftHeight > 0) {
PDF.addPage();
}
}
}
//保存文件
PDF.save(title + ".pdf")
});
}
};
export default htmlToPdf;
原文地址:https://blog.csdn.net/qq_45732872/article/details/134727170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_25196.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。