PDF 文字提取工具使用说明
环境信息
- 系统:macOS 12.7.6 (x86_64)
- Python:3.12(venv 虚拟环境)
- paddlepaddle:2.6.2
- paddleocr:2.6.1.3
- PyMuPDF:1.27.2.3
虚拟环境
所有依赖安装在 ~/pdf_ocr_env 虚拟环境中,需要先激活才能使用。
激活环境
bash
source ~/pdf_ocr_env/bin/activate
退出环境
bash
deactivate
不激活环境直接运行
bash
~/pdf_ocr_env/bin/python extract_pdf_ocr.py
使用方法
1. 命令行运行
bash
source ~/pdf_ocr_env/bin/activate
python extract_pdf_ocr.py
2. 修改 PDF 路径
编辑 extract_pdf_ocr.py,修改最后一行的 PDF 文件路径:
python
if __name__ == "__main__":
pdf_path = "/你的路径/你的文件.pdf" # 改成你的 PDF 路径
result = extract_pdf_text(pdf_path)
print(result)
3. 在其他脚本中调用
python
import sys
sys.path.insert(0, "/Users/wjr/Desktop/work/Ai/pdf")
from extract_pdf_ocr import extract_pdf_text
result = extract_pdf_text("/你的路径/你的文件.pdf")
print(result)
提取逻辑
- 用 PyMuPDF 打开 PDF,逐页渲染为图片(300 DPI)
- 用 PaddleOCR 识别每页图片中的文字
- 输出所有页面的文字内容
本工具采用纯 OCR 方式提取,适用于文本层编码异常或扫描件 PDF。
常见问题
No module named 'fitz'
用了系统 Python 而不是 venv。用 ~/pdf_ocr_env/bin/python 或先 source ~/pdf_ocr_env/bin/activate。
MuPDF error: zlib error: incorrect header check
警告信息,不影响结果,可忽略。
OCR 结果为空
检查 PDF 是否为纯图片且 DPI 过低,可尝试将 dpi=300 改为 dpi=600 提高识别率。