首页 / 详情
Site icon

OCRmyPDF

基本信息

OCRmyPDF 网站截图预览

工具详情

OCRmyPDF 实用指南

核心定位:开源、安全、高效的命令行 PDF OCR 工具,Python 开发,底层基于 Tesseract OCR、Ghostscript、qpdf。

📜 开源协议:MPL-2.0(可商用,修改源码需公开)

一、主要功能

OCRmyPDF 不仅仅是简单的文字识别,它专注于“增强 PDF":

  1. 生成可检索 PDF/A:默认输出存档标准 PDF/A,也可切换为普通 PDF。
  2. 图像智能预处理:
  • 自动纠偏(--deskew
  • 页面旋转校正(--rotate-pages
  • 降噪与对比度增强
  1. 多语言混合识别:支持中英文混扫(-l chi_sim+eng)及百种语言。
  2. 性能优化:
  • 批量/单文件处理
  • 原地覆盖输出(-f
  • 多核 CPU 加速(--jobs N
  • PDF 压缩优化
  1. 输出辅助文件:导出纯文本副文件(--sidecar)。
  2. 高级控制:
  • 跳过已有文本页面
  • 强制重 OCR(--force-ocr
  • 修复损坏 PDF
  • 元数据自定义
  1. 部署方式:提供 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. 安装失败 若安装报错,请检查是否安装了系统级组件(Tesseractqpdfunpaper)。


评论

暂无评论