pdf-ocr-skill 是一个用于从影印版 PDF 文件和图片文件中提取文字内容的 OCR 技能,支持中文和英文识别,并保持文字的顺序和结构。它会自动将 PDF 页面转换为图片再进行识别。
一、主要能力 该技能提供四种 OCR 引擎:RapidOCR(本地引擎,免费、无需 API 密钥、识别速度快)、RapidDoc(增强引擎,支持版面分析、表格识别、公式识别和阅读顺序恢复,可输出包含 Markdown 的较结构化结果)、PaddleOCR(本地引擎,使用 PP-OCRv5 模型,支持多种语言和场景)、硅基流动 API(云端引擎,使用 AI 大模型进行高精度识别,需要 API 密钥)。此外具备智能引擎切换能力:当 RapidOCR 初始化失败时自动切换到硅基流动 API。
二、支持格式 PDF 文件:.pdf。图片文件:.jpg、.jpeg、.png、.bmp、.gif、.tiff、.webp。输出为包含 text(识别的完整文本内容)、page_count(页数,图片文件始终为 1)、engine(rapid | rapidoc | paddle | siliconflow)的对象。
三、安装与配置 依赖安装:pip install pymupdf pillow requests python-dotenv。可选依赖(推荐):pip install rapidocr_onnxruntime,以获得本地识别能力。环境变量配置:复制 .env.example 为 .env,按需设置 OCR_ENGINE("rapid" 为默认、"rapidoc"、"paddle"、"siliconflow"),若使用硅基流动 API 引擎需配置 SILICON_FLOW_API_KEY 和 SILICON_FLOW_OCR_MODEL(示例为 deepseek-ai/DeepSeek-OCR)。
四、使用方式 Python 调用:导入 from scripts.pdf_ocr_processor import PDFOCRProcessor,创建 PDFOCRProcessor()(默认 RapidOCR)或 PDFOCRProcessor(engine="siliconflow"),调用 processor.ocr_pdf('path/to/your/scanned.pdf') 或 processor.ocr_image_file('path/to/your/image.jpg')。命令行调用:python pdf_ocr_processor.py your_document.pdf,可选传入 rapid/siliconflow/rapidoc/paddle 指定引擎。进阶用法包括批量处理目录中的多个 PDF、以及先用 RapidOCR 再根据文本长度决定是否改用硅基流动 API 的混合策略。在 AI IDE 中还可通过提示词明确指定引擎。
五、适用场景 处理扫描版合同、协议等文档;提取影印版书籍、报告中的文字;处理无法直接复制文字的 PDF;批量处理扫描版 PDF;识别截图、扫描件等图片中的文字;处理手写体或印刷体图片文字识别。
六、限制与注意事项 RapidOCR 首次使用会自动下载模型,识别速度取决于 CPU 性能;硅基流动 API 需要有效 API 密钥,可能会产生费用,识别速度取决于文件页数、图片大小和网络状况;RapidDoc 处理时间可能长于 RapidOCR;PaddleOCR 首次使用会自动下载模型,对复杂扫描件或图片的识别准确率可能不同。建议使用高清晰度的扫描版 PDF 或图片以获得更好的识别效果。常见故障包括 RapidOCR 初始化失败(安装 rapidocr_onnxruntime)、硅基流动 API 401 错误(检查 .env 中密钥)、PDF 转图片失败(安装 pymupdf)以及识别结果为空(确认是否为扫描版、尝试云端引擎、确保清晰可读)。