OCRmyPDF

给扫描 PDF 加上可搜索文字层,秒变可检索文档

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 计算机视觉 🍴 复刻 2450 🐛 待处理 64 👀 关注 187
GitHub ↗
GitHub 星标 ★ 35272
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,本地部署使用,无付费版本。

项目预览

OCRmyPDF 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类计算机视觉
开发团队ocrmypdf
定价模式🏷️完全免费
价格说明开源免费,本地部署使用,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MPL-2.0
主要语言Python
技术栈/模型image-processing,ocr,pdf,python,tesseract
GitHub 星标★ 35272
上线时间2013-12-20 00:00:00
代码更新2026-11-09
仓库体积72.2 MB
本站数据更新2026-11-09
维护状态活跃
收录时间2026-08-10
浏览次数8

项目介绍

OCRmyPDF 是一个开源命令行工具,专门为扫描版 PDF 文件添加 OCR 文本层,让原本不可搜索的扫描文档变得可搜索、可复制、可索引。它解决的核心问题是:大量扫描 PDF 本质是图片,无法进行文本检索、复制或编辑。OCRmyPDF 基于 Tesseract OCR 引擎,能自动检测页面方向、清理图像噪声、优化输出文件大小,并保留原始页面布局和视觉外观。它支持多种语言识别,可输出 PDF/A 标准格式,适合长期存档。工具采用模块化设计,支持通过插件扩展功能,并能与现有文档处理流水线无缝集成。对于需要批量处理扫描档案、票据、书籍或合同的企业和个人,OCRmyPDF 提供了一条高效、可靠的自动化路径。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 35272

使用教程

难度:入门 约 10 分钟 部署方式:命令行工具 5 步

环境要求

  • 支持 Linux、Windows、macOS 和 FreeBSD 系统
  • 可通过系统包管理器安装(Debian/Ubuntu、Fedora、macOS Homebrew/MacPorts/nix、FreeBSD、OpenBSD、Ubu
  • 也可使用官方 Docker 镜像,支持 x64 与 ARM 架构
  • 需要一个扫描版 PDF 文件(或图片)作为输入

安装与启动步骤

  1. 1安装 OCRmyPDF

    按你的操作系统选择对应安装命令,例如 Ubuntu/Debian 用 apt,macOS 用 Homebrew。

    apt install ocrmypdf
  2. 2执行基本 OCR

    把扫描版 PDF 作为输入,OCRmyPDF 会输出带文本层的可搜索 PDF。注意输入在前、输出在后。

    ocrmypdf input_scanned.pdf output_searchable.pdf
  3. 3指定识别语言

    用 -l 指定语言,多个语言用加号连接,例如英语加法语。

    ocrmypdf -l eng+fra input_scanned.pdf output_searchable.pdf
  4. 4自动旋转与纠偏

    --rotate-pages 可修正页面方向错误,--deskew 可拉直歪斜的扫描页面。

    ocrmypdf --rotate-pages --deskew input_scanned.pdf output_searchable.pdf
  5. 5输出 PDF/A 与元数据

    --output-type pdfa 生成 PDF/A 归档格式,--title 设置输出标题,--jobs 控制并行核心数。

    ocrmypdf --title "My PDF" --jobs 4 --output-type pdfa input_scanned.pdf output_searchable.pdf

关键配置

配置项必填说明示例
-l否指定 OCR 识别语言,多语言用 + 连接eng+fra
--rotate-pages否自动修正页面旋转方向错误--rotate-pages
--deskew否自动拉直歪斜的扫描页面--deskew
--title否修改输出 PDF 的标题元数据"My PDF"
--jobs否设置并行处理的核心数,默认已使用多核4
--output-type否指定输出类型,pdfa 为 PDF/A 格式pdfa

如何确认成功

命令执行完成后会生成 output_searchable.pdf,用 PDF 阅读器打开应能选中并复制其中的文字,说明 OCR 文本层已添加成功。

常见问题

Q:不同操作系统怎么安装?

A:Debian/Ubuntu 与 WSL 用 apt install ocrmypdf,Fedora 用 dnf install ocrmypdf,macOS 用 brew install ocrmypdf 或 port install ocrmypdf,FreeBSD 用 pkg install py-ocrmypdf。

Q:没有包管理器或平台不支持怎么办?

A:README 指引前往官方文档 https://ocrmypdf.readthedocs.io/en/latest/installation.html 查看安装步骤,也可使用官方 Docker 镜像。

Q:如何识别中文等多语言文档?

A:使用 -l 参数指定语言,多个语言用加号连接,例如 -l eng+fra。

Q:能处理图片输入吗?

A:可以,OCRmyPDF 除了 PDF 输入外也接受图片输入。

Q:输出格式是什么?

A:默认生成 PDF/A 格式,也可通过 --output-type 指定输出类型。

注意事项

  • 默认输出即为 PDF/A,适合长期存档。
  • 默认会使用多核并行处理,可用 --jobs 调整。
  • 扫描页面方向错误或歪斜时,加上 --rotate-pages 和 --deskew 效果更好。
  • OCR 文本层放置在图像下方,便于准确复制粘贴。

核心亮点

  • 基于 Tesseract,识别精度高,支持 100+ 种语言
  • 自动优化图像质量,输出文件比原扫描件更小
  • 生成 PDF/A 标准格式,适合长期存档和合规要求

不足之处

  • 依赖外部 Tesseract 引擎,安装配置稍复杂
  • 对复杂排版或手写体识别效果有限

适用场景

  • 企业档案数字化,将纸质合同、发票扫描件转为可搜索 PDF
  • 学术研究,批量处理书籍扫描件以便全文检索引用
  • 法律/政务场景,将历史卷宗扫描件转换为可检索电子档案

替代项目

PaddleOCR、ocrmypdf 的替代品如 PDF OCR X、ABBYY FineReader

上一篇:paperless-ngx

下一篇:liteparse

同类项目推荐

STranslate 开源

选中即译、截图即识,Windows 上最顺手的翻译 OCR 小工具

A ready-to-go translation ocr tool developed with WPF/WPF 开发的一款即用即走的翻译、···

★ 8543 2026-08-10
Metalhead.jl 开源

Julia 里开箱即用的 Flux 视觉模型库

AI models in Julia on top of Flux.jl

★ 350 2026-10-26
zotero-ocr 开源

在 Zotero 里直接给扫描 PDF 做 OCR,文字可搜可引。

Zotero Plugin for OCR

★ 838 2026-09-19
Synthesize3DviaDepthOrSil 开源

从多视图深度图或轮廓,一键生成3D形状

[CVPR 2017] Generation and reconstruction of 3D shapes via modeling multi-view depth···

★ 171 2026-08-09
doctr 开源

用 PyTorch 或 TensorFlow 快速实现文档文字检测与识别

docTR (Document Text Recognition) - a seamless, high-performing & accessible library···

★ 6424 2026-08-10
Exp-CLIP 开源

用LLM知识让CLIP看懂表情,零样本识别更准

[WACV'25 Oral] Enhancing Zero-Shot Facial Expression Recognition by LLM Knowledge Tr···

★ 63 2026-08-09
WinCLIP 开源

用 CLIP 实现零样本工业异常检测,无需训练样本即可定位缺陷

Implementation of CVPR'23 paper "WinCLIP: Zero-/few-shot anomaly classification and ···

★ 75 2026-08-09