# paddleocr-UI **Repository Path**: shengh123/paddleocr-ui ## Basic Information - **Project Name**: paddleocr-UI - **Description**: 基于百度飞桨框架写的一个UI界面,用于把pdf识别为文字,用于离线条件下,在电脑终端使用。 界面使用pyqt。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-10-06 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PaddleOCR PDF文字识别工具 v1.0 [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) ![Python](https://img.shields.io/badge/python-3.7%2B-blue.svg) ![Platform](https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey.svg) 基于PaddleOCR的图形界面PDF文字识别工具,支持多格式导出和原样排版功能。 ## 功能特性 - **PDF文字识别**: 使用PaddleOCR进行高精度文字识别 - **多格式导出**: 支持导出为PDF、DOCX、Markdown格式 - **原样排版**: 保持原始文档的版面布局 - **多页处理**: 支持多页PDF文档处理 - **中英混识**: 支持中英文混合文档识别 - **图形界面**: 用户友好的图形界面操作 - **跨平台**: 支持Windows、macOS和Linux系统 ## 界面预览 ![主界面](docs/main_ui.png) *(界面预览图待添加)* ## 系统要求 - Python 3.7 或更高版本 - Windows 7/8/10/11, macOS 10.12+, 或 Linux - 至少4GB内存推荐 ## 安装指南 ### 1. 克隆项目 ```bash git clone cd paddleocr ``` ### 2. 创建虚拟环境(推荐) ```bash # Windows python -m venv venv venv\Scripts\activate # macOS/Linux python3 -m venv venv source venv/bin/activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` **注意**: 首次安装paddlepaddle可能需要较长时间,请耐心等待。 ### 4. 验证安装 ```bash python -c "import paddleocr; print('PaddleOCR安装成功')" ``` ## 使用方法 ### 启动程序 ```bash python main.py ``` ### 操作步骤 1. 点击"打开PDF"按钮选择要识别的PDF文件 2. 点击"开始OCR识别"按钮进行文字识别 3. 等待识别完成后,可编辑识别结果 4. 点击"保存"按钮导出识别结果 5. 选择导出格式(PDF/DOCX/Markdown) ### 原样排版导出 1. 完成OCR识别后 2. 点击"保存(原样排版)"按钮 3. 选择导出格式(PDF/DOCX) 4. 保存文件,文档将保持原始布局 ## 项目结构 ``` paddleocr/ ├── main.py # 程序入口 ├── requirements.txt # 依赖列表 ├── README.md # 项目说明 ├── VERSION.md # 版本历史 ├── 开发计划.md # 开发计划 ├── 错误处理与解决方案.md # 错误处理文档 ├── 项目总结报告.md # 项目总结 ├── ui/ # 图形界面模块 │ └── main_window.py # 主窗口实现 ├── ocr/ # OCR处理模块 │ ├── ocr_engine.py # OCR引擎封装 │ ├── pdf_processor.py # PDF处理器 │ └── output/ # OCR输出目录 ├── export/ # 导出模块 │ ├── pdf_exporter.py # PDF导出器 │ ├── docx_exporter.py # DOCX导出器 │ └── md_exporter.py # Markdown导出器 ├── utils/ # 工具模块 │ └── logger.py # 日志工具 └── logs/ # 日志目录 ``` ## 核心模块介绍 ### OCR引擎模块 (ocr/ocr_engine.py) - 封装PaddleOCR功能 - 提供统一的OCR接口 - 支持详细结果获取 ### PDF处理器 (ocr/pdf_processor.py) - 将PDF转换为图像 - 支持多页PDF处理 - 图像预处理优化 ### 导出模块 (export/) - **PDF导出器**: 支持中文的PDF导出 - **DOCX导出器**: Word文档导出 - **Markdown导出器**: Markdown格式导出 ### 布局保持器 (layout_preserver.py) - 根据坐标信息重建原始布局 - 支持多页文档处理 - 提供多种输出格式 ### 图形界面 (ui/main_window.py) - PyQt5实现的用户界面 - 多线程OCR处理 - 进度显示和错误处理 ## 配置说明 ### OCR参数配置 在`ocr/2.py`中可以调整OCR参数: ```python ocr = PaddleOCR( text_detection_model_name="PP-OCRv5_mobile_det", text_recognition_model_name="PP-OCRv5_mobile_rec", use_doc_orientation_classify=False, use_doc_unwarping=False, use_textline_orientation=False, det_limit_side_len=640, det_limit_type="max", rec_batch_num=6, drop_score=0.5) ``` ### 导出格式选择 - **PDF**: 保持格式,支持中文 - **DOCX**: Word文档,易于编辑 - **Markdown**: 轻量级格式,便于网络发布 ## 常见问题 ### 1. 安装paddlepaddle失败 ```bash # 尝试使用国内镜像源 pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 2. 中文显示乱码 - 程序已内置中文字体支持 - 自动检测系统字体 - 支持Windows、macOS、Linux系统 ### 3. 识别速度慢 - 使用了PP-OCRv5_mobile模型优化速度 - 可在ocr_engine.py中调整参数 - 建议关闭不必要的文档预处理功能 ### 4. 内存占用高 - 程序使用多线程处理避免界面卡顿 - 大文件处理时请确保有足够的内存 ## 性能优化 1. **模型选择**: 使用mobile模型平衡精度和速度 2. **参数调优**: 调整det_limit_side_len等参数 3. **批处理**: 增加rec_batch_num提高批量处理效率 4. **过滤低分结果**: 设置drop_score过滤低置信度结果 ## 开发指南 ### 项目依赖 ``` paddleocr==3.2.0 paddlepaddle PyQt5 PyMuPDF python-docx markdown numpy opencv-python ``` ### 扩展开发 1. 添加新的导出格式 2. 集成其他OCR引擎 3. 增强版面分析功能 4. 添加表格识别功能 ### 代码规范 - 遵循PEP8代码规范 - 函数和类都有详细注释 - 使用类型提示提高代码可读性 ## 版本历史 查看 [VERSION.md](VERSION.md) 获取详细的版本更新记录。 ## 许可证 本项目采用Apache License 2.0许可证,详见 [LICENSE](LICENSE) 文件。 ## 致谢 - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) - 百度飞桨文字识别工具 - [PyQt5](https://pypi.org/project/PyQt5/) - Python图形界面库 - [PyMuPDF](https://pymupdf.readthedocs.io/) - PDF处理库 - [python-docx](https://python-docx.readthedocs.io/) - DOCX文档处理库 ## 联系方式 如有问题或建议,请提交Issue或联系项目维护者。