页面内打印任意元素(最优解:使用生成Iframe的方式)
const frame = document.createElement("iframe");
// add css to adapt to pdf size
const doc = new Blob(
[
`<html><body style="margin:0px;padding:0px;height:1160px;width:820px;display:flex;align-items:center;justify-content:center;"><img src="${
dataUrl
}"></body></html>`,
],
{
type: "text/html",
}
);
frame.onload = () => {
if (frame.contentWindow && frame.contentWindow.print) {
frame.contentWindow.print();
frame.remove();
} else {
showToast($.t("admin.operationFailed"));
}
};
frame.src = URL.createObjectURL(doc); // 这里创建同域资源防止跨域无法操作iframe
document.body.appendChild(frame);
页面大小
-PDF文件对应的HTML页面的宽度为【820px】。
-一页PDF文件对应的HTML页面的高度为【1160px】,多页类推。
-记得要将【body】元素的外边距【margin】清零。
网友评论