PDF创建和内部写入内容-PyPDF2

时间:2018-09-13 04:18:06

标签: python python-3.x python-2.7 pypdf pypdf2

我正在递归地从一个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 .. 另外,还有更好的选择吗?

1 个答案:

答案 0 :(得分:0)

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,希望有人觉得它有用。