【问题标题】:Can't get text out of PDF file with PyPDF2无法使用 PyPDF2 从 PDF 文件中获取文本
【发布时间】:2019-03-16 14:16:39
【问题描述】:

我正在尝试从使用 PyPDF 下载的 PDF 文件中获取文本。 这是我的代码:

if not PyPDF2.PdfFileReader('download.pdf').isEncrypted:
    PyPDF2.PdfFileReader('download.pdf').getPage(0).extractText()

这是输出:

'\n\n˘ˇ˘ˆ˙\n˝˛˚˜!\n\n\n\n#\nˇ˘ˆ˙ˆ˝˛˝\n˙˙˘ ˘ˆ"˝\n$!%˙(˝)˙*˜+,˝-.#/.(#0)0)/.1.+02345.\n˛˛ˇ/#.$/0/70/#.+322.32˙˘˛˘˘\n˛˘ 8˙˘9:˘ˆ;\n˛˘\n\n˝=\n˙˘˛\n.ˇ<9:˘ˇˇ%˘˛ˇ ˘˘<˘\n˝>"?˝˘$@<˘*ˆˆ˘˙˘A˘B˘˙˘˛ˇ!˛˘˙˘˛ˇ˘\n1C˙ˆ˘06˛˘8+˛9:˘D10+E˝ˆ˘8\n$˘˘9:˘˘1C˙ˆ˘+˘F˛˘D$1+FE˝˘˛˘˘<˘?˝\n////)*˘1˘˛ ?GG˜*HI\nD˘˙A˘E\nJ$\n˛\nDLE///M˛˝˛˙˘˛˘˛\n˛˘˛>"?\n˙˘˛\n˛\n/)M6;˝˛˙˘˛˘\n˛\n///˛\n\n'

当我打开文件时,它的内容很好。此外,当我使用另一个程序将 pdf 转换为 txt 时,它工作正常。是网页上的javascript渲染的pdf,不知道有没有什么区别。

【问题讨论】:

  • 您好,pdf 是生成的还是打印页面的扫描?
  • 由 javascript 命令生成

标签: python pdf pypdf2


【解决方案1】:

在 Win 7、Python 3.6 下,我遇到了 PyPDF2 没有正确编码某些 PDF 文件的问题。我的解决方案是使用 pdfminer.six。

pip install pdfminer.six

要从 PDF 中提取文本,您可以使用本文中的函数:https://stackoverflow.com/a/42154976/9524424

非常适合我...

【讨论】:

  • 这很有帮助。不知道为什么这个问题被否决了,这似乎是一个真正的问题和一个真正的解决方案。
  • 这对我也有帮助。遗憾的是,该问题未标记为已回答。还有很多类似的问题。
【解决方案2】:

以下内容摘自文档 (https://pythonhosted.org/PyPDF2/PageObject.html)

extractText() 按顺序定位所有文本绘制命令 在内容流中提供,并提取文本。这很好用 对于某些 PDF 文件,但对于其他文件则较差,具体取决于生成器 用过的。这将在未来进行完善。不要依赖顺序 来自这个函数的文本,因为如果这个函数它会改变 变得更加复杂。返回:一个 unicode 字符串对象。

所以,看来这个函数的性能取决于pdf本身。

【讨论】:

  • 我认为问题不在于这个意义上的性能——在我看来,这听起来像是不明白为什么 PDF 文件的文本没有从extractText() 方法正确返回.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
相关资源
最近更新 更多