为了从多页PDF中获取单个字符串,我正在这样做:

import PyPDF2
pdfFileObject = open('sample.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObject)
count = pdfReader.numPages
for i in range(count):
    page = pdfReader.getPage(i)
    output = page.extractText()
output


结果是来自单个页面(文档的最后一页)的字符串-就像应该根据PyPDF2 documentation一样。我之所以采用这种方法,是因为我读过一些人建议使用它来读取整个PDF,这在我的情况下不起作用。

显然,这是一项基本操作,由于我缺乏经验,我事先表示歉意。我尝试了其他解决方案,例如Tika,PDFMiner和Textract,但到目前为止,PyPDF似乎是唯一让我满意的解决方案。

任何帮助,将不胜感激。

更新:

如建议的那样,我将output定义为列表,然后将其附加到它(按照我的想法)中的所有页面,如下所示:

for i in range(count):
    page = pdfReader.getPage(i)
    output = []
    output.append(page.extractText())


我们认为结果是列表中的单个字符串,例如['sample content from the last page of PDF']

最佳答案

可能是因为此行:

output = page.extractText()


尝试以下方法:

output += page.extractText()


因为在您的代码中,您将覆盖“输出”变量的值,而不是附加到该变量。不要忘记在for循环之前声明“输出”变量。所以output = ''for i in range(count):之前

关于python - 如何使用PyPDF2在Python 3中以单个字符串的形式从PDF检索所有页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60199068/

10-12 21:07