桌面端 AI 辅助 PDF 财务表格提取工具,基于 PyQt5 + PyMuPDF,专为金融分析师设计。
自动从银行年报 PDF 中提取结构化表格,支持表格提取、AI 纠错、对比预览、单元格编辑,一键导出 Excel。
- 双引擎并行:PyMuPDF + pdfplumber 同时提取,自动融合最优结果
- V2 增强算法:多信号融合策略(文字坐标 + 表格线条 + 字体特征),不依赖单一信号
- 渐进式降级:精确方法优先,逐步降级确保不丢数据
- 自动类型检测:识别文本型 PDF / 扫描件,分别采用不同策略
独创的四层递增式纠错管线,对提取结果进行深度优化:
| 层级 | 名称 | 作用 | API 成本 |
|---|---|---|---|
| L1 | 规则预检 | 10 项规则自动检测(空行、列不对齐、数值格式等) | 免费 |
| L2 | 规则自动修复 | 确定性规则自动修正(删除空行、统一数值格式等) | 免费 |
| L3 | LLM 深度分析 | AI 命名表格、识别层级关系、判断区域完整性 | 需 API |
| L4 | 数值交叉验证 | 验证合计行与子项之和是否一致 | 免费 |
LLM 纠错产出:每张表的规范名称、层级结构(表头/分类/小计/总计)、区域判断(合并/拆分建议)、数值修正,并附置信度标记。
- 左右分栏:PDF 原页面 ↔ 提取的表格数据,实时对比
- PDF 预览:支持缩放(Ctrl+滚轮)、拖拽,自动定位到当前表格页码
- 单元格编辑:双击直接修改提取错误的单元格
- 撤销/重做:完整编辑历史(最多 100 步)
- 筛选导航:按页面、提取器类型、关键字筛选,快速定位目标表格
- 一键导出为格式化 Excel(
.xlsx),含表头加粗、边框、自动列宽 - 支持多 Sheet 导出(每页一个 Sheet)
选择 PDF → 自动检测类型 → 多引擎提取表格 → 对比预览核对 → AI 纠错优化 → 导出 Excel
选择 PDF → 配置提取参数 → 后台解析 → 实时进度反馈。
左 PDF 原页面,右提取表格,逐页对照,双击编辑单元格。
查看 L1-L4 的纠错结果,按置信度接受/拒绝修正,支持 Prompt 预览编辑。
管理历史任务,按状态筛选,一键重新加载或清理。
# 安装依赖
pip install -r requirements.txt
# 运行
python main.py提示:如需使用 AI 纠错功能,请先在「⚙️ 配置」Tab 中填写 DeepSeek 或豆包 API Key。无 Key 时仍可使用规则预检与自动修复。
| 组件 | 技术 | 用途 |
|---|---|---|
| GUI | PyQt5 | 桌面界面 |
| PDF 解析 | PyMuPDF (fitz) + pdfplumber | 文字提取 + 线条检测 |
| 列聚类 | numpy + scikit-learn | K-Means 列边界分析 |
| Excel | openpyxl | 格式化导出 |
| AI 后端 | DeepSeek / 豆包 API | LLM 深度纠错 |
| 文档转换 | pdf2docx + python-docx | 降级通道 |
DocuTable/
├── main.py # 入口
├── codes/
│ ├── core/ # 核心提取引擎
│ │ ├── extractor.py # 基础表格提取(pdfplumber + PyMuPDF)
│ │ ├── table_processor.py # 表格结构重建(间隙检测、聚类)
│ │ ├── gap_detector.py # 自适应列边界检测
│ │ ├── column_analyzer.py # K-Means 聚类列分析
│ │ └── exporter.py # Excel/JSON 导出
│ ├── pdf_extractor/ # PDF 提取 + AI 纠错
│ │ ├── processor.py # V2 提取算法 + VisionLLM + ProcessingWorker
│ │ ├── ai_correction.py # 四层 AI 纠错引擎(L1→L2→L3→L4)
│ │ ├── widgets.py # PDF 预览控件
│ │ ├── utils.py # 配置、缓存、历史管理
│ │ └── pdf_context.py # PDF 共享上下文
│ └── ui/ # 界面层
│ ├── main_window.py # 主窗口(5 个 Tab)
│ ├── processing_manager.py # PDF 处理流程管理
│ ├── table_compare_manager.py # 表格对比预览(最大模块)
│ ├── preview_manager.py # PDF 预览渲染
│ ├── ai_correction_dialog.py # AI 纠错交互界面
│ ├── history_manager.py # 历史记录
│ ├── export_manager.py # 导出流程
│ ├── file_manager.py # 缓存管理
│ ├── settings_manager.py # API Key 配置
│ └── table_editor.py # 单元格编辑
├── build.txt # PyInstaller 打包说明
├── requirements.txt
└── screenshots/
- Python 3.8+
- PyQt5 ≥ 5.15
- PyMuPDF ≥ 1.23
- openpyxl ≥ 3.1


