如何在React App中将pdf生成为文本?

问题描述 投票:0回答:1

我有一个 Web 应用程序,前端使用 React,后端使用 Django。我在应用程序中生成 pdf 时遇到问题。

总而言之,我的要求是生成 pdf,作为文本(而不是图像)——这样就可以搜索它/可以复制它的部分内容。如果可能的话,我希望能够从反应组件中执行此操作,并且以不必在页面上实际显示它的方式执行此操作。

有人可以提供一种方法,让我能够做到这一点吗?

到目前为止,我尝试了几个选项,但没有一个令人满意:

  • 在 React 中使用 html2pdf.js 生成 - 我需要将 pdf 生成为文本,而不是图像。从我到目前为止的发现来看,在我看来,这只有通过 window.print() 才可能实现
  • window.print() 函数 - 我不想在打印之前向用户显示 pdf 源代码。另外,它会打开我不想要的打印弹出窗口。
  • 服务器端 - 我也尝试在这里用一个库来做到这一点。问题是在这种情况下,当我将整个 html 发送到后端时,没有使用 css 规则。
  • 我也考虑过使用 django 模板,但我之前使用过它们,React 方式更好。另外,我更愿意“以一种方式”完成所有 UI,而不是同时使用 django 模板和 React 组件。
reactjs pdf-generation
1个回答
0
投票

您可以使用reportlab库。它允许您创建带有可搜索和复制文本内容的 PDF 文档

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def generate_pdf():
    # Create a PDF file
    c = canvas.Canvas("sample.pdf", pagesize=letter)

    # Add text to the PDF
    text = "This is a sample PDF document created with reportlab. " \
           "You can add more text or formatting as needed."
    c.drawString(100, 750, text)

    # Save the PDF file
    c.save()

if __name__ == "__main__":
    generate_pdf()
© www.soinside.com 2019 - 2024. All rights reserved.