首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于某些文件,PyPDF2仅返回空行

对于某些文件,PyPDF2仅返回空行
EN

Stack Overflow用户
提问于 2017-07-28 15:02:01
回答 1查看 1.1K关注 0票数 2

我正在编写一个脚本,它可以“读取”PDF文件,然后自动重命名它从字典中识别的文件。然而,对于某些PDF,PyPDF2只返回空行,而对于其他PDF则可以很好地工作。读取文件的代码:

代码语言:javascript
复制
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)用于它不能读取的文件,我会得到如下结果:

代码语言:javascript
复制
"'\\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

谁有什么建议?非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-04-20 05:02:53

我遇到了同样的问题,我使用另一个名为slate的python库修复了它,幸运的是,我发现了一个可以在Python3.6.5中工作的fork

代码语言:javascript
复制
import slate3k as slate

with open(file.pdf,'rb') as f:
    extracted_text = slate.PDF(f)
print(extracted_text)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45366890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档