【发布时间】:2021-06-10 09:31:42
【问题描述】:
我正在制作一个内容极少的非常简单的反应应用程序。
index.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 为 printable-div 的 div 将在此处打印。
我也为此应用了一个 css,
#printable-div {
border: 2px solid #000;
padding: 20px;
}
但是当点击按钮时,会发生 pdf 的下载,而在打开 pdf 文件时,边框没有正确对齐。
同样在这里,订单需要到页面,但它只适用于 div。
使用的库:
->jsPdf
点击打印按钮执行的代码如下,
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`);
});
};
完整的工作示例:
谁能虚心帮我实现让边框与整个页面正确对齐的结果? 如果需要将使用的库更改为其他替代方案,也可以..
要求:
整个页面需要有边框可见,所有边间距相等,内容需要在边框内..
【问题讨论】:
-
我的建议是,您需要使用 doc.rect 方法手动进行布局,您可以使用在线编辑器来帮助您的工作mrrio.github.io/jsPDF
标签: javascript reactjs pdf jspdf html2canvas