OCRmyPDF:给扫描版 PDF 加上文字层
OCRmyPDF:给扫描版 PDF 加上文字层
扫描版 PDF 有个尴尬的问题。看着是文字,实际是图片。想搜索、复制、标注,全都做不到。OCRmyPDF 这个 33.7k Star 的开源项目,就是专门解决这件事的。

能干什么
核心功能一句话:给扫描版 PDF 加一层 OCR 文字,让它变成可搜索、可复制的文件,同时不破坏原内容。
具体来说:
- 给 PDF 添加 OCR 文字层,文字位置精确对齐在图片下方,复制粘贴体验自然
- 保持原始图片的分辨率,不做降质处理
- 支持 100 多种语言,多语言混合文档也能处理
- 自动纠正歪斜页面和方向错误的页面
- 输出默认是 PDF/A 格式,适合长期存档
- 多核并行处理,上千页的大文件也能稳定跑
- 纯 Python 实现,Linux、macOS、Windows、FreeBSD 全平台支持
简单说,给它一个扫描版 PDF,它还你一个带着文字层的 PDF,文件体积通常还会变小。

怎么用
安装很省事。Debian/Ubuntu 直接 apt install ocrmypdf,macOS 用 brew install ocrmypdf,也支持 Docker 部署。装好之后跑一条命令:
ocrmypdf input_scanned.pdf output_searchable.pdf
中英文混排文档指定语言就行:ocrmypdf -l chi_sim+eng input.pdf output.pdf。
和同类方案比
OCR 工具很多,但做到这个完整度的不多。它的关键差异在文字定位精度。OCR 文字层精确对齐到每个文字在图片里的实际位置,复制出来的文字,顺序和内容都是对的。
它走的是无破坏操作模式。只要条件允许,OCR 信息作为增量数据写入 PDF,不动原始内容。很多 OCR 工具常见的副作用在这里都不存在:图片被重新压缩、分辨率下降、文件体积暴涨。
谁适合用
做文档管理的,特别是用 paperless-ngx 这类系统的,OCRmyPDF 可以直接集成进去,自动化处理大量扫描文档。
做 AI 知识库的,扫描版 PDF 要喂给 RAG 系统,第一步就是把图片变成可索引的文字。OCRmyPDF 比在线 OCR 服务更可控,数据不需要离开自己的服务器。
需要长期存档的场景,PDF/A 输出格式能保证这些文件在很多年后还能正常打开和搜索。
局限
依赖 Tesseract OCR 引擎,对复杂排版(多栏、表格嵌套、竖排文字)的识别效果有限。不过社区已经有插件支持 Apple Vision 和 PaddleOCR 等替代引擎,中文识别效果有提升空间。
OCRmyPDF 是一个定位清晰、把一件事做透的工具。没有 UI,没有复杂配置,命令行一句话就把扫描 PDF 变成可搜索可复制的 PDF。这种工具往往用得最久。
浙公网安备 33010602011771号