# pdfRec **Repository Path**: stfocus/pdf-rec ## Basic Information - **Project Name**: pdfRec - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-18 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF文档管理与关键词搜索系统 ## 系统功能 本系统提供了PDF文档的批量OCR识别、Markdown转换、按日期分类存储和关键词搜索功能,并通过Gradio提供了直观的Web界面。 ### 主要功能 1. **PDF批量OCR识别**:使用PaddleOCR-VL模型对PDF文档进行高精度文本识别 2. **Markdown格式转换**:将识别结果转换为结构化的Markdown格式 3. **按日期分类存储**:自动根据处理日期对PDF文档进行分类管理 4. **关键词搜索**:支持在已处理的文档中搜索关键词,包括: - 支持多关键词搜索(逗号分隔) - 支持区分大小写选项 - 提供直观的搜索结果展示 5. **数据源选择**:支持从Markdown文件和JSON结果文件中搜索 6. **PDF上传处理**:支持通过Web界面上传PDF文件或指定PDF目录路径 7. **Gradio Web界面**:提供用户友好的Web交互界面,包含搜索和上传两个主要标签页 ## 安装说明 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` 主要依赖包括: - paddleocr>=2.7.0:PaddleOCR引擎 - paddlepaddle>=2.5.0:PaddlePaddle深度学习框架 - pymupdf>=1.23.0:PDF处理 - gradio>=3.50.0:Web界面 ### 2. 准备环境 确保已安装CUDA(推荐,以加速OCR处理),如果没有GPU,系统会自动使用CPU模式。 ## 使用方法 ### 1. PDF批量处理 #### 方式1:命令行处理 将PDF文件放入`pdf`目录,然后运行: ```bash python batch_pdf_ocr.py ``` 处理后的Markdown文件将保存在`md/YYYY-MM-DD`目录(按处理日期分类),OCR结果JSON文件将保存在`output`目录。 #### 方式2:Web界面处理 启动Web界面后,在"PDF上传处理"标签页中: - 选择"文件上传"模式,上传单个PDF文件 - 或选择"目录路径"模式,输入包含PDF文件的目录路径 - 点击"开始处理"按钮 处理完成后,文件将自动按日期分类并添加到搜索索引中。 ### 2. 启动Gradio界面 ```bash python gradio_ui.py ``` 启动后,浏览器会自动打开界面(或访问 http://localhost:7860)。 ### 3. 使用界面搜索 启动Web界面后,在"关键词搜索"标签页中: 1. 在"输入关键词"文本框中输入要搜索的关键词(多个关键词用逗号分隔) 2. 根据需要选择是否"区分大小写" 3. 点击"搜索"按钮查看结果 4. 使用"刷新数据"按钮重新加载最新的文档数据 **刷新按钮**:点击后会重新加载output目录中的JSON结果文件,确保搜索索引包含最新处理的文档。 ## 项目结构 ``` pdfRec/ ├── README.md # 项目说明文档 ├── batch_pdf_ocr.py # PDF批量OCR处理模块 ├── keyword_search.py # 关键词搜索模块 ├── gradio_ui.py # Gradio Web界面模块 ├── main.py # 主程序入口 ├── requirements.txt # 项目依赖 ├── pdf/ # 待处理PDF文件目录 ├── md/ # 生成的Markdown文件目录(按日期分类) │ ├── 2024-01-01/ # 按处理日期自动创建的子目录 │ └── ... └── output/ # OCR结果和搜索结果保存目录 └── ocr_results.json # 合并的OCR结果JSON文件 ``` ## 注意事项 1. 首次运行时,系统会自动下载并初始化PaddleOCR-VL模型,可能需要一些时间和网络流量 2. 处理大量或大型PDF文件时,内存和处理时间需求会相应增加 3. 确保有足够的磁盘空间存储OCR结果和Markdown文件 4. 关键词搜索基于文本匹配,对于复杂的语义搜索需求,可能需要更高级的NLP模型 5. Web界面上传的PDF文件会在处理完成后自动保存到按日期分类的目录中 6. 文件处理过程中会自动检查重复,避免相同文件名的文档被重复添加到搜索索引 ## 常见问题 **Q: 如何添加更多的PDF文件进行处理?** A: 有两种方式: 1. 通过Web界面的"PDF上传处理"标签页上传文件或指定目录 2. 将新的PDF文件放入`pdf`目录,然后重新运行`python batch_pdf_ocr.py` **Q: 上传的PDF文件保存在哪里?** A: 处理后的Markdown文件会保存在`md/YYYY-MM-DD`目录(按处理日期分类),OCR结果会合并到`output/ocr_results.json`文件中。 **Q: 搜索结果不准确怎么办?** A: 尝试调整区分大小写选项,或检查OCR识别质量。对于特殊格式的文档,可能需要额外的后处理。 **Q: 处理过程中出现内存错误怎么办?** A: 尝试减少同时处理的文件数量,或增加系统内存。可以考虑分批处理大型PDF文件或目录。 **Q: 如何查看某个日期处理的所有文档?** A: 可以直接查看`md`目录下对应的日期子目录,或在Web界面搜索相关日期关键词。