【问题标题】:PyPDF2 extract empty TextPyPDF2 提取空文本
【发布时间】:2022-05-01 21:28:25
【问题描述】:

我正在使用 PyPDF2 从 pdf 中提取文本。我在 google 中找到的所有示例看起来都像我的代码:

import PyPDF2

reader = PyPDF2.PdfFileReader("test2.pdf")
page = reader.getPage(0)
text = page.extractText()
print(text.encode("utf-8"))

但是,我的控制台中有空文本:

b''

这段代码我测试过不同的pdf,所有的pdf都是空的

更新:

# getDocumentInfo
{'/Producer': 'Skia/PDF m75'}

文件pdf

【问题讨论】:

  • 您的 pdf 文件是否包含真正的文本,或者它可能是某种扫描图像?你能附上这里的文件样本吗?
  • 参考这个答案,它可能会帮助stackoverflow.com/a/51328080/6234311
  • @kosist 是的,pdf 包含真正的文本。我添加了一个pdf文件
  • 你试过其他库吗?因为即使在github上,也有写到有时候这个lib不能正确提取文本...
  • 如果它可以帮助任何人调试,我会遇到与制作人“Skia/PDF m86”的 PDF 相同的问题

标签: python pypdf2


【解决方案1】:

看起来某些字体/文本组合使 PyPDF2、PyPDF3 或 PyPDF4 无法读取文本。

要从这些 PDF 中提取文本,您可以使用专用的 PDF 文本提取包pdfminer.six

from pdfminer import high_level

local_pdf_filename = "/path/to/pdf/you_want_to_extract_text_from.pdf"
pages = [0] # just the first page

extracted_text = high_level.extract_text(local_pdf_filename, "", pages)
print(extracted_text)

它适用于我失败的所有 pdf,并且作为后备实施非常快。完整的docs for the extract_text 函数是here

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多