首页
/
OCRmyPDF
基本信息
- 工具类别: 开源
- 收录时间: 2026-07-01
- 访问次数: 38
- 评分: 4.7
- 官网: https://ocrmypdf.readthedocs.io/en/latest/
工具详情
OCRmyPDF 实用指南
核心定位:开源、安全、高效的命令行 PDF OCR 工具,Python 开发,底层基于 Tesseract OCR、Ghostscript、qpdf。
📜 开源协议:MPL-2.0(可商用,修改源码需公开)
一、主要功能
OCRmyPDF 不仅仅是简单的文字识别,它专注于“增强 PDF":
- 生成可检索 PDF/A:默认输出存档标准 PDF/A,也可切换为普通 PDF。
- 图像智能预处理:
- 自动纠偏(
--deskew) - 页面旋转校正(
--rotate-pages) - 降噪与对比度增强
- 多语言混合识别:支持中英文混扫(
-l chi_sim+eng)及百种语言。 - 性能优化:
- 批量/单文件处理
- 原地覆盖输出(
-f) - 多核 CPU 加速(
--jobs N) - PDF 压缩优化
- 输出辅助文件:导出纯文本副文件(
--sidecar)。 - 高级控制:
- 跳过已有文本页面
- 强制重 OCR(
--force-ocr) - 修复损坏 PDF
- 元数据自定义
- 部署方式:提供 Python 库 API、Docker 镜像、简易 Web 服务插件。
二、适用人群与场景
✅ 适合使用
- 程序员/运维:构建自动化档案处理、批量扫描 PDF 流水线。
- 办公/档案管理员:纸质扫描件数字化归档。
- 学生/研究员:古籍、扫描教材、论文批量文字提取。
- 私有部署需求:敏感文档本地离线处理,拒绝上传云端。
❌ 不适合使用
- 纯小白用户:无命令行基础(原生无 GUI,需安装第三方封装)。
- 单图提取需求:仅提取单张图片文字时,直接使用 Tesseract 更轻量。
- 移动端用户:无移动端客户端。
三、免费与付费说明
💰 核心程序:100% 免费
- 开源本体:所有命令行参数、Python API 全部免费。
- 无限制:无官方订阅、无付费套餐、无额度限制、无水印。
- 无定价页面:官方无任何收费渠道。
- 依赖组件:Tesseract、Ghostscript 均为开源免费。
⚠️ 第三方付费警告
- App Store 同名客户端:一次性$4.99 授权,非作者开发。
- 功能限制:仅封装命令行,不推荐。
- 风险:可能涉及隐私上传风险,建议使用官方开源版。
四、安装指南
重要提示:必须先安装系统级依赖(Tesseract、qpdf 等),仅 pip 安装会导致功能缺失。1. Windows 用户(推荐 WSL2)
在 Windows 原生上兼容性较差,建议使用 WSL(Ubuntu)。
bash
# WSL Ubuntu 环境 sudo apt install ocrmypdf tesseract-ocr tesseract-ocr-chi-sim # WSL Ubuntu 环境 sudo apt install ocrmypdf tesseract-ocr tesseract-ocr-chi-sim
2. macOS 用户
使用 Homebrew 快速安装。
bash
brew install ocrmypdf tesseract tesseract-lang brew install ocrmypdf tesseract tesseract-lang
3. 通用 Python 安装
在系统依赖装好后,通过 pipx 安装 Python 包。
bash
pipx install ocrmypdf pipx install ocrmypdf
五、使用命令示例
1. 基础 OCR
输出默认 PDF/A 格式。
bash
ocrmypdf input.pdf out.pdf ocrmypdf input.pdf out.pdf
2. 进阶处理(多语言 + 纠偏 + 压缩)
bash
ocrmypdf -l chi_sim+eng --deskew --optimize 2 scan.pdf search.pdf ocrmypdf -l chi_sim+eng --deskew --optimize 2 scan.pdf search.pdf
3. 强制重 OCR
若 PDF 内已有文字层,默认会跳过。如需强制重扫(将矢量文字转为图片)。
bash
ocrmypdf --force-ocr in.pdf out.pdf ocrmypdf --force-ocr in.pdf out.pdf
4. 导出副文件
原地覆盖输出,并生成独立 TXT 文本。
bash
ocrmypdf --sidecar out.txt input.pdf ocrmypdf --sidecar out.txt input.pdf
5. Python API 调用
极简代码示例。
python
import ocrmypdf
ocrmypdf.ocr(
"scan.pdf",
"search.pdf",
language=["chi_sim", "eng"],
deskew=True
)
import ocrmypdf
ocrmypdf.ocr(
"scan.pdf",
"search.pdf",
language=["chi_sim", "eng"],
deskew=True
)
六、避坑指南
1. 中文乱码 确保安装了中文语言包:tesseract-ocr-chi-sim。多语言识别时必须使用-l 语言 1+语言 2格式。
2. 报错page already has text原生带文字 PDF 默认会被跳过。需加--force-ocr强制重扫,注意这会破坏矢量文字层,将其转为图片。
3. Windows 兼容性问题 原生 cmd/Powershell 兼容性差,优先推荐 WSL2 或 Docker 环境。仅 pip 安装容易缺失 Ghostscript 等系统依赖。4. 分辨率误区 300 DPI 是最优平衡点。600 DPI 以上会大幅拖慢速度,且识别精度无显著提升。
5. 隐私风险 确保使用 离线本地版。切勿使用第三方封装的 GUI 软件,避免文件被偷偷上传。
6. 大文件内存溢出 处理千页以上扫描件时,建议加 --jobs 2 限制线程,降低并行内存占用。7. PDF/A 兼容性 若部分老旧阅读器打不开,可加 --output-type pdf 输出普通 PDF 格式。8. 文件损坏风险 使用原地覆盖(-f)时,若程序中途崩溃会损坏原文件。建议先生成新文件再手动替换。9. 复杂版面识别错位 多栏文档识别异常时,尝试加 --pagesegmode 6 调整版面分割模式。10. 安装失败 若安装报错,请检查是否安装了系统级组件(Tesseract、qpdf、unpaper)。
暂无评论