目前,大量的文档采用pdf格式。相比word文档,pdf由于缺乏结构化支持,提取相对困难。
这里示例常用的pdf文档解析工具,比如pypdf、pdfplumber。
所用代码参考和修改自网络资料。
1 pypdf
1.1 pypdf说明
pypdf/pypdf2支持pdf的合并、拆分、旋转、加密、添加水印、提取文本。
缺点是文本提取能力有限,对复杂结构支持不好,不具备页面布局、表格识别等高级功能
1.2 提取示例
示例代码如下所示,每次解析一页,部分换行不能精确识别。
from pypdf import PdfReader
reader = PdfReader(pdf_path)
text = ""
i = 0
for page in reader.pages:
curr_text = page.extract_text()
text += curr_text
print(i, "=>", curr_text)
i += 1
2 pdfplumber
支持表格提取的pdf提取工具,精确提取 结构化数据,尤其适用于表格、发票、报告等。
2.1 工具安装
安装命令如下所示
!pip install pdfplumber
2.2 提取示例
以下是使用pdfpluber提取文件的示例,支持按页提取表格内容,相比pypdf操控更精确。
import pdfplumber
with pdfplumber.open(pdf_path) as pdf:
page = pdf.pages[0]
text = page.extract_text()
table = page.extract_table()
print("page=>")
print("text=>", text)
print("table=>", table)
reference
PDF工具集:PyPDF / PyPDF2、PDFMiner.six、PyMuPDF(fitz) 和 pdfplumber(v2+)
https://juejin.cn/post/7503490370367832079
大模型RAG应用开发之PDF解析工具对比
https://www.cnblogs.com/deeplearningmachine/p/18383664
网友认可的PDF开源解析工具