我正在递归地从一个pdf阅读文本,并在每次运行时对提取的文本进行一些操作,并希望创建一个新的pdf以在每次运行时保存该编辑过的文本。
我在下面尝试了PyPDF2。

import PyPDF2
output = PdfFileWriter()
pdf="pdfte.pdf"
Obj_pdfFile = open(pdf, 'rb')
pdfReader = PyPDF2.PdfFileReader(Obj_pdfFile,strict = False)
pages=pdfReader.numPages
for page in range(pages):
        pageObj = pdfReader.getPage(page)
        pdf_text=pageObj.extractText()
        upper = pdf_text.upper()
        #print(pdf_text)
        output.addPage(input.getPage(upper)) . # I thought this will work but no use..


我知道需要输入“页面”,但基本上是在寻找如何将编辑后的文本保存为新的pdf ...我知道我在这里缺少一些代码,如何保存为pdf等,但这正是我需要的帮助,从未使用过pdf。 。
另外,还有更好的选择吗?

最佳答案

PyPDF2可以将pdf文件作为文档来处理,而不是作为编辑器来处理。我想做与您尝试的相同的操作,但只能像其他许多答案一样,使用reportlab使其成为可能。注意这里


  output.addPage(input.getPage(upper))。 #我以为这可以用,但是没有用。
  upper是一个字符串,并且getPage()期望从
      PyPDF2.PdfFileReader(pdffile).getPage(0)
  这是在python 2.7上为我工作的:


    temp = StringIO()
    from reportlab.pdfgen import canvas
    from reportlab.lib.pagesizes import A6 #choose here your size
    can = canvas.Canvas(temp, pagesize=A6)
    can.drawString(10, 405, "Your string on this position")
    can.save()
    temp.seek(0)
    lector = PyPDF2.PdfFileReader(temp)
    output.addPage(lector.getPage(0)) #your pypdf2 writter


现在输出的是带有附加字符串的pdf,希望有人觉得它有用。

08-24 20:56