我正在制作一个非常简单的react应用程序,内容很少。
索引.js:
<div className="App">
<div id="printable-div">
<h1>Generate PDF</h1>
<p>Create a screenshot from the page, and put it in a PDF file.</p>
<p style={{ color: "red" }}>
*Open this page in new window and press the button.
</p>
</div>
<br />
<button id="print" onClick={printPDF}>
PRINT
</button>
</div>
在这里,带有 id 的 divprintable-div
将被打印出来。
我也为此应用了一个 css,
#printable-div {
border: 2px solid #000;
padding: 20px;
}
但是,当单击按钮时,会下载 pdf,而在打开 pdf 文件时,边框未正确对齐。
同样在这里,订单需要针对页面,但它仅适用于 div。
使用的库:
-> jsPDF
-> html2canvas
点击打印按钮执行的代码如下,
const printPDF = () => {
const domElement = document.getElementById("printable-div");
html2canvas(domElement).then((canvas) => {
const imgData = canvas.toDataURL("image/png");
const pdf = new jsPdf();
pdf.addImage(imgData, "JPEG", 0, 0);
pdf.save(`${new Date().toISOString()}.pdf`);
});
};
完整的工作示例:
任何人都可以虚心帮助我实现使边框与整个页面正确对齐的结果吗?如果使用的库需要更改为其他替代方案也可以。
要求:
整个页面需要有边框可见,所有边间距相等,内容需要在边框内。