我正在递归地从一个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,希望有人觉得它有用。