import html2Canvas from "html2canvas";
import JsPDF from "jspdf";
/**
*
* @param {*} reportName 下载时候的标题
* @param {*} isDownload 是否下载默认为下载,传false不下载
*/
const getPdf = function (reportName, isDownload = true) {
return new Promise((resolve, reject) => {
var title = reportName;
html2Canvas(document.querySelector("#pdfDom"), {
allowTaint: true,
useCORS: true,
}).then((canvas) => {
const contentWidth = canvas.width;
const contentHeight = canvas.height;
console.log("contentWidth", contentWidth);
console.log("contentHeight", contentHeight);
//页面偏移
let position = 5;
//a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
const imgWidth = contentWidth - 20;
const imgHeight = contentHeight - 20;
let pageData = canvas.toDataURL("image/jpeg", 1.0);
let PDF = new JsPDF("p", "px", [210, 270]);
//有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
//当内容未超过pdf一页显示的范围,无需分页
PDF.addImage(pageData, "JPEG", 10, 10, imgWidth, imgHeight);
PDF.save(title + ".pdf");
if (isDownload) {
PDF.save(title + ".pdf");
}
// 删除本地存储的base64字段
var pdfData = PDF.output("datauristring"); //获取base64Pdf
let blobData = new Blob([PDF], {
type: "application/pdf",
});
console.log("blobData", blobData);
resolve(blobData);
});
});
};
export default getPdf;