如何通过 python 从 PDF 文件中提取文本?
- 2024-12-05 08:37:00
- admin 原创
- 152
问题描述:
我正在尝试使用 提取此PDF 文件中包含的文本Python
。
我正在使用PyPDF2包(版本 1.27.2),并有以下脚本:
import PyPDF2
with open("sample.pdf", "rb") as pdf_file:
read_pdf = PyPDF2.PdfFileReader(pdf_file)
number_of_pages = read_pdf.getNumPages()
page = read_pdf.pages[0]
page_content = page.extractText()
print(page_content)
当我运行代码时,我得到以下输出,它与 PDF 文档中包含的输出不同:
! " # $ % # $ % &% $ &' ( ) * % + , - % . / 0 1 ' * 2 3% 4
5
' % 1 $ # 2 6 % 3/ % 7 / ) ) / 8 % &) / 2 6 % 8 # 3" % 3" * % 31 3/ 9 # &)
%
我如何提取 PDF 文档中的文本?
解决方案 1:
我正在寻找一种适用于python 3.x 和 windows 的简单解决方案。textract 似乎不支持,这很不幸,但如果您正在寻找适用于 windows/python 3 的简单解决方案,请查看tika包,它真的很直接,可以读取 pdf。
Tika-Python 是与 Apache Tika™ REST 服务的 Python 绑定,允许在 Python 社区中本地调用 Tika。
from tika import parser # pip install tika
raw = parser.from_file('sample.pdf')
print(raw['content'])
请注意,Tika 是用 Java 编写的,因此您需要安装 Java 运行时。
解决方案 2:
pypdf 最近有了很大的改进。根据数据,它与 相当或更好pdfminer.six
。
pymupdf / tika / PDFium比 pypdf 更好,但差异相当小 - (主要是何时设置新行)。核心部分是它们速度更快。但它们不是纯 Python 的,这意味着您无法执行它。有些许可证可能过于严格,因此您可能无法使用它。
看看基准。该基准主要考虑英文文本,但也考虑德文文本。它不包括:
关于表格有什么特别之处吗(只是有文本,与格式无关)
阿拉伯语测试(RTL 语言)
数学公式。
这意味着如果您的用例需要这些点,您可能会对质量有不同的看法。
话虽如此,2022 年 11 月的结果如下:
pypdf
我在 2022 年成为了 pypdf 和 PyPDF2 的维护者!
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD