有多种 Python 包可以使用 Python 从 PDF 中提取文本。你可以看到速度/质量基准.
作为维护者pypdf
and PyPDF2
我有偏见,但我会推荐pypdf
供人们开始。它是纯 python 和 BSD 3 条款许可证。这应该对大多数人都有效。 pypdf 还可以对 PDF 文件执行更多操作(例如转换)。
如果您对 C 依赖性感到满意并且不想修改 PDF,请给出pypdfium2一枪。 pypdfium2 速度非常快,并且具有令人惊叹的提取质量。
我之前推荐过 Popplers pdftotext。不要用那个。它的质量比 PDFium/PyPDF2 差。
Tika 和 PyMuPDF 的工作方式与 PDFium 类似,但它们也具有非 python 依赖性。由于商业许可,PyMuPDF 可能不适合您。
我不会使用 pdfminer / pdfminer.six / pdfplumber/ pdftotext / borb / PyPDF2 / PyPDF3 / PyPDF4。
pypdf:纯Python
安装:pip install pypdf
(更多说明)
from pypdf import PdfReader
reader = PdfReader("example.pdf")
text = ""
for page in reader.pages:
text += page.extract_text() + "\n"
PDFium:高质量且速度非常快,但具有 C 依赖性
安装:pip install pypdfium2
import pypdfium2 as pdfium
text = ""
pdf = pdfium.PdfDocument(data)
for i in range(len(pdf)):
page = pdf.get_page(i)
textpage = page.get_textpage()
text += textpage.get_text()
text += "\n"
[g.close() for g in (textpage, page)]
pdf.close()