【发布时间】:2018-01-04 03:12:27
【问题描述】:
我正在编写一个脚本来“读取”PDF 文件,然后自动重命名它从字典中识别的文件。然而,PyPDF2 只为某些 PDF 返回空行,而对其他 PDF 工作正常。文件读取代码:
import PyPDF2
# File name
file = 'sample.pdf'
# Open File
with open(file, "rb") as f:
# Read in file
pdfReader = PyPDF2.PdfFileReader(f)
# Check number of pages
number_of_pages = pdfReader.numPages
print(number_of_pages)
# Get first page
pageObj = pdfReader.getPage(0)
# Extract text from page 1
text = pageObj.extractText()
print(text)
它确实获得了正确的页数,因此它能够打开 PDF。
如果我将 print(text) 替换为 repr(text) 以获取它不读取的文件,我会得到类似:
"'\\n\\n\\n\\n\\n\\n\\n\\nn\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n'"
奇怪的是,当我使用 Adobe 增强 (OCR) 文件时,脚本的性能稍差。它识别了 800 个文件中的 140 个,仅增强了 110 个。
PDF 是机器可读/可搜索的,因为我可以将文本复制/粘贴到记事本。我用“pdfminer”测试了一些文件,它确实显示了一些文本,但也引发了很多错误。如果可能的话,我想继续使用 PyPDF2。
我使用的软件规格:
窗口:10.0.15063
Python:3.6.1
PyPDF:1.26.0
Adobe 版本:17.009.20058
有人有什么建议吗?非常感谢您的帮助!
【问题讨论】:
-
你的问题解决了吗?
-
不。这个问题只发生在我的文件的几个百分比上。从那以后我没有重新测试......
-
@Hoenie 你是如何解决你的问题的?我的意思是你用哪个库代替 pyPdf2
-
pdfminer,但是那个也没有正确阅读一些 PDF。两者结合让我走得很远......
标签: python-3.x adobe ocr pypdf2