☰
OCRmyPDF 完整指南:3 条命令给扫描 PDF 加上可搜索文本层
2026/10/5 5:42:19 网站建设 项目流程

OCRmyPDF 完整指南:3 条命令给扫描 PDF 加上可搜索文本层

【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF

OCRmyPDF 是一个开源命令行工具,给扫描版 PDF 添加 OCR 识别的文本层,让原本只能看图的文件变成可搜索、可复制文字的可搜索 PDF。适合需要数字化扫描件、处理归档文档的工程师、档案管理员和普通用户。

先跑起来:一条命令完成第一次转换

装好就能用。Debian/Ubuntu 用户一条命令搞定:

sudo apt install ocrmypdf

其他平台可以pip install ocrmypdf,macOS/Linux 也可以用brew install ocrmypdf。装完先确认一下:

ocrmypdf --version

然后跑一条最短的真实转换命令:

ocrmypdf 扫描版.pdf 输出.pdf

处理完成后,在任意 PDF 阅读器里选中、搜索文字就都能用了,版面外观保持不变。注意 pip 装的是 Python 部分,Tesseract 等外部依赖需要用系统包管理器单独装。

参数工具箱:高频参数一张表

参数不用背,用到时查这张表:

参数作用什么场景用
-l eng+fra指定识别语言,多语言用+连接非英文文档,或中英混排
-d/--deskewOCR 前校正页面倾斜扫描件歪了,行斜得搜不准
-c/--clean用 unpaper 清理扫描噪点、杂斑扫描质量差、背景脏
-r/--rotate-pages按文字方向自动旋转页面横竖页混扫、页面倒置
--oversample 600把低分辨率图像超采样到指定 DPI300dpi 以下模糊扫描件
--output-type pdfa输出 PDF/A 长期存档格式归档、合规存档
--optimize 2启用有损压缩,明显减小体积文件太大、要上传或存储
-s/--skip-text跳过已有文字的页面文档图文混排,只补图片页
-j N限制并行 CPU 核心数批量处理时防止机器过热
--sidecar 输出.txt额外导出一份纯文本建全文检索索引、先预览识别质量

真实场景怎么做

多语言混排文档:-l 一次指定多种语言

Tesseract 无法自动判断语言,你必须告诉它。先装好对应语言包,再一起声明:

ocrmypdf -l chi_sim+eng 合同扫描件.pdf 合同可搜索.pdf

语言包安装示例:sudo apt install tesseract-ocr-chi-sim,用tesseract --list-langs查看已装列表。

一条命令批量转换整个文件夹

仓库文档 docs/batch.md 推荐用 GNU parallel 做批处理,限制 2 个并发避免机器过载:

parallel --tag -j 2 ocrmypdf '{}' 'output/{}' ::: *.pdf

只想原地更新、逐文件串行跑,也可以:

find . -name '*.pdf' -exec ocrmypdf '{}' '{}' \;

图文混排、已有文字层:选对处理模式

文档里一部分页是图片、一部分页已有文字时,默认模式会直接报错。用-s跳过文字页;想连已有文字一起重新识别,用--force-ocr;只想给指定页做 OCR,用--pages 3-end只处理第 3 页到最后一页。

它是怎么工作的

OCRmyPDF 把每页 PDF 渲染成图像,交给 Tesseract 识别出文字和位置坐标,再把文字按原位置嵌入为不可见文本层,最后做图像压缩和 PDF/A 转换输出。整个过程原始版面不动,只是多了一层"藏在图底下的字"。

遇到问题怎么办

现象:中文全识别成乱码。原因:默认按英文(eng)识别,语言不对时结果会非常差。 解决:装中文语言包后用-l chi_sim重新处理。

现象:报错说文件已包含文字,处理中断。原因:默认--mode default遇到已有文本层会拒绝继续,防止覆盖。 解决:图文混排用-s跳过文字页,确认要重做用--force-ocr。

现象:输出文件比原文件还大。原因:嵌入文本层占空间,且默认优化等级(-O1)只做无损压缩。 解决:加--optimize 2或--optimize 3,黑白为主的文档装上 jbig2enc 编码器收益更大。

现象:提示找不到 unpaper,--clean失败。原因:unpaper 是可选外部依赖,没装。 解决:sudo apt install unpaper,或者去掉--clean参数。

现象:页面歪斜或倒置,搜索命中很怪。原因:没做预处理,文字方向没校正。 解决:加-d -r,先纠斜再旋转。

和其他工具怎么选

OCRmyPDFTesseract 命令行在线 OCR 服务商业 PDF 软件
免费开源是是部分免费否
直接输出可搜索 PDF是有限视服务而定是
PDF/A 存档是否否部分
图像预处理(纠斜/清洁)内置无无有限
压缩优化内置无无有限
无界面,可脚本化是是否否

结论:如果你只要"识别一句话",Tesseract 就够;如果你要的是批量产出可搜索、可归档、体积可控的 PDF,OCRmyPDF 是命令行工具里功能最完整的选择。

总结

OCRmyPDF 用一条命令就能给扫描 PDF 加文本层,再配上-l、--deskew、--optimize等参数覆盖绝大多数数字化场景。下一步建议:读 docs/cookbook.md 看更多命令组合,想深入内部可以看 src/ocrmypdf/ 源码和 src/ocrmypdf/builtin_plugins/ 里的插件实现。

【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询