# PDFIMG2Excel **Repository Path**: smilecatt/pdfimg2-excel ## Basic Information - **Project Name**: PDFIMG2Excel - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SBOPC - Software Based on PaddleOCR > 基于 PaddleOCR 开发的表格识别与数据提取软件 [![License](https://img.shields.io/badge/license-Apache%202-blue)](LICENSE) [![Python](https://img.shields.io/badge/python-3.7+-green)](https://www.python.org/) [![PaddleOCR](https://img.shields.io/badge/PaddleOCR-2.7-orange)](https://github.com/PaddlePaddle/PaddleOCR) --- ## 项目简介 SBOPC (Software Based on PaddleOCR) 是一个基于百度 PaddleOCR 开发的**表格识别与数据提取软件**。主要功能包括: - **PDF 转图片** - 高 DPI 提取 PDF 页面为图片 - **图像预处理** - 灰度化、二值化、对比度增强 - **表格识别** - 基于 PP-Structure 的表格结构识别 - **数据导出** - 将识别结果导出为 Excel 文件 --- ## 软件架构 ``` SBOPC/ ├── PDF2img.py # PDF 转图片 ├── predeal.py # 图像预处理 ├── main.py # 表格识别主程序 ├── to_excel.py # HTML 转 Excel ├── deal1.py # 直线检测处理 ├── huidu+erzhi.py # 灰度+二值化处理 ├── my_json.py # JSON 数据处理工具 │ ├── model/ # OCR 模型文件 ├── file1/ # 待处理 PDF 文件 ├── img_png-dpi=xxx/ # PDF 转换后的图片 ├── output-xxx/ # 识别结果输出 ├── result/ # 汇总的 Excel 文件 │ ├── reference/ # 参考资料 │ └── PaddleOCR/ # PaddleOCR 官方项目 (完整代码) │ ├── ppocr/ # OCR 核心代码 │ ├── ppstructure/ # 表格识别模块 │ ├── configs/ # 配置文件 │ ├── tools/ # 训练和推理工具 │ ├── deploy/ # 部署代码 │ └── PaddleOCR_Docs/ # 官方文档 │ └── README.md ``` --- ## 工作流程 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ PDF 文件 │ -> │ 转换为图片 │ -> │ 图像预处理 │ -> │ 表格识别 │ │ (file1/) │ │ (PDF2img) │ │ (predeal) │ │ (main.py) │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ v ┌─────────────┐ │ 导出 Excel │ │ (to_excel) │ └─────────────┘ ``` --- ## 快速开始 ### 1. 环境要求 - Python >= 3.7 - PaddlePaddle >= 2.0.0 ### 2. 安装依赖 ```bash # 安装 PaddlePaddle (CPU版本) pip install paddlepaddle # 或安装 GPU版本 pip install paddlepaddle-gpu # 安装项目依赖 pip install -r reference/PaddleOCR/requirements.txt ``` ### 3. 下载模型 下载 PP-OCRv4 和 PP-Structure 模型到 `model/` 目录: ```bash # 创建模型目录 mkdir -p model/CH model/layout_model # 下载检测模型 wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_server_infer.tar -P model/CH/ # 下载识别模型 wget https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar -P model/CH/ # 下载版面分析模型 wget https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_table_infer.tar -P model/layout_model/ ``` --- ## 使用方法 ### Step 1: PDF 转图片 将 PDF 文件转换为高分辨率图片: ```bash # 将 PDF 文件放入 file1/ 目录 python PDF2img.py ``` **配置参数:** - `folder_path`: PDF 文件所在目录 (默认: `./file1`) - `output_folder`: 输出图片目录 (默认: `img_png-dpi=500`) - `dpi`: 图片分辨率 (默认: 500) ### Step 2: 图像预处理 (可选) 对图片进行预处理以提升识别效果: ```bash python predeal.py ``` **处理流程:** 1. 灰度转换 2. 高斯模糊去噪 3. 二值化 4. 对比度增强 **配置参数:** - `source_folder`: 源图片目录 (默认: `img-1`) - `target_folder`: 输出目录 (默认: `predeal`) ### Step 3: 表格识别 运行表格识别并导出 Excel: ```bash python main.py ``` **配置参数:** - `img_folder`: 输入图片目录 (默认: `predeal`) - `output_folder`: 识别结果输出目录 (默认: `output-0527-2`) - `res_folder`: Excel 汇总目录 (默认: `result2`) ### Step 4: HTML 转 Excel (独立使用) 将 HTML 表格转换为 Excel: ```bash python to_excel.py ``` --- ## 核心模块说明 ### PDF2img.py - PDF 转图片 ```python from PDF2img import extract_pdf_pages_as_images # 转换 PDF 为图片 extract_pdf_pages_as_images( folder_path='./file1', # PDF 目录 output_folder='./images', # 输出目录 dpi=500 # 分辨率 ) ``` ### predeal.py - 图像预处理 ```python from predeal import process_image import cv2 # 处理单张图片 processed = process_image('input.jpg') cv2.imwrite('output.jpg', processed) ``` ### main.py - 表格识别 ```python from paddleocr import PPStructure, save_structure_res # 初始化表格识别引擎 table_engine = PPStructure( show_log=True, rec_model_dir='./model/CH/ch_PP-OCRv4_rec', det_model_dir='./model/CH/ch_PP-OCRv4_det_server_infer', layout_model_dir='./model/layout_model/picodet_lcnet_x1_0_fgd_layout_table_infer', lang='ch', recovery=True, type='structure' ) # 执行识别 result = table_engine(img) # 保存结果 save_structure_res(result, output_folder, img_name) ``` --- ## 输出格式 识别结果包含以下内容: ``` output/ ├── image_name/ # 每张图片对应一个文件夹 │ ├── image_name.xlsx # 识别的 Excel 表格 │ ├── image_name.html # HTML 格式表格 │ └── image_name.pdf # PDF 格式 (可选) ``` --- ## 目录说明 | 目录/文件 | 说明 | |-----------|------| | `PDF2img.py` | PDF 转图片模块 | | `predeal.py` | 图像预处理模块 | | `main.py` | 表格识别主程序 | | `to_excel.py` | HTML 转 Excel | | `file1/` | 存放待处理的 PDF 文件 | | `img_png-dpi=xxx/` | PDF 转换后的图片 | | `output-xxx/` | 识别结果输出 | | `result/` | 汇总的 Excel 文件 | | `model/` | 存放 OCR 模型 | | `reference/PaddleOCR/` | PaddleOCR 官方完整项目 | --- ## 常见问题 ### Q1: 如何提高识别准确率? 1. 提高 PDF 转图片的 DPI (建议 500-1000) 2. 使用图像预处理增强对比度 3. 根据表格类型调整模型参数 ### Q2: 支持 GPU 加速吗? 支持。安装 GPU 版本 PaddlePaddle 即可: ```bash pip install paddlepaddle-gpu ``` ### Q3: 支持哪些表格类型? - 规则表格 (行列对齐) - 跨行跨列表格 - 带边框/无边框表格 --- ## 参考资料 PaddleOCR 官方项目位于 `reference/PaddleOCR/` 目录,包含: - `ppocr/` - OCR 核心代码 - `ppstructure/` - 表格识别模块 - `configs/` - 模型配置文件 - `tools/` - 训练和推理工具 - `deploy/` - 部署相关代码 - `PaddleOCR_Docs/` - 官方文档 更多官方资源: - [PaddleOCR GitHub](https://github.com/PaddlePaddle/PaddleOCR) - [模型库](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/doc/doc_ch/models_list.md) --- ## 许可证 本项目基于 Apache 2.0 许可证。底层 PaddleOCR 同样采用 Apache 2.0 许可证。 --- ## 贡献 欢迎提交 Issue 和 Pull Request! --- **最后更新**: 2026-03-18