Skip to content

About

一个PDF表格提取的Python工具集

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

formExtract

这是一套用于从PDF文档中提取表格数据的Python工具集,支持多种提取方法和特殊表格类型处理,特别是针对跨页表格和三线表的智能识别。

主要功能

  • 多种表格提取引擎:支持Camelot、PDFPlumber和Tabula三种表格提取引擎
  • 智能跨页表格识别:自动检测并合并跨页的表格,保持数据完整性
  • 特殊表格类型支持:优化处理三线表、无边框表格等特殊表格
  • 表格后处理:自动合并相关单元格、清理数据、优化输出格式
  • 灵活配置选项:支持自定义表格区域、页码范围等提取参数

工具说明

1. camalot.py(三线表等无边框表格)

Camelot引擎的表格提取工具,支持lattice和stream两种模式:

  • extract_tables_with_camelot:使用lattice模式提取有边框表格
  • extract_with_stream_mode:使用stream模式提取无边框(三线)表格

2. pdfplumber-py.py(跨页表格)

PDFPlumber引擎的表格提取工具,带有强大的跨页表格处理功能:

  • extract_tables_with_pdfplumber:智能提取表格并处理跨页情况
  • extract_with_custom_settings:使用自定义参数提取复杂表格
  • is_similar_data:跨页表格智能匹配算法

3. tabula-py.py(效果最差)

基于Tabula-Java的表格提取工具,适用于简单结构的PDF表格:

  • extract_tables_with_tabula:批量提取并保存表格数据

4. 合并.py

用于还原pdf中表格的合并单元格的工具:

  • merge_empty_cells:智能合并空单元格,处理横向和纵向合并
  • is_in_merged_range:辅助函数,检测单元格合并状态

使用方法

  1. 安装依赖
pip install camelot-py tabula-py pdfplumber pandas openpyxl
  1. 基本使用
# 使用Camelot提取非标准表格
python camalot.py

# 使用PDFPlumber提取跨页表格
python pdfplumber-py.py

# 对提取后的表格进行单元格合并处理
python 合并.py

此工具集适用于需要从复杂PDF文档中批量提取表格数据的场景,特别是对于包含跨页表格、三线表等特殊结构的文档处理效果显著。

About

一个PDF表格提取的Python工具集

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages