【问题标题】:Export React Page to PDF将 React 页面导出为 PDF
【发布时间】:2021-05-18 21:30:44
【问题描述】:

我希望能够将 React Page 导出为 PDF 文件。到目前为止,我已经尝试使用 jsPDF 和 html2canvas 将页面捕获为图像并将其保存为 pdf。示例代码:

const input = document.getElementById('exportToPDF')
    window.scrollTo(0,0)
    html2canvas(input)
      .then((canvas) => {
        document.body.appendChild(canvas)
        const imgData = canvas.toDataURL('image/png')
        const pdf = new jsPDF()
        pdf.addImage(imgData, 'PNG', 0, 0)
        pdf.save("test.pdf")
      });

和“exportToPDF”示例:

<div id="exportToPDF">...</div>

当页面内容太大/太长时,我遇到了画布被切断的问题。 我怎样才能让它在需要时分成多个页面?它似乎仅限于一页。

我尝试过:将窗口宽度和高度设置为 html2canvas,但没有帮助。

更新:我愿意尝试其他方式将 React 页面导出为 PDF 文件,而不必使用免费的 html2canvas。

【问题讨论】:

  • 你能说明导致问题的来源吗?谢谢。
  • html2canvas 制作图像 - 如果 PDF 中有文本,您几乎肯定不想要图像
  • @AndyRay 你是对的。我愿意接受建议吗?
  • 我们在某种程度上遇到了同样的问题,jspdf-yworks(现在是 jspdf v2.0)解决了。然而,我们决定使用服务器端转换器,通过在 python+flask 中使用 xhtml2pdf 将渲染的 DOM html 发送回服务器进行转换。它实际上是 6 行代码,并提供了更灵活的解决方案。一个缺点 - 样式和图像需要内联 - 这并不难。

标签: reactjs pdf export-to-pdf


【解决方案1】:

您是否尝试过 react-pdfreact-to-pdf 如果您不使用 next.js,这两个可能对您有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2013-04-09
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多