factory_web/src/utils/htmlToPdf.js

46 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;