OCRmyPDF 教程:一分钟给扫描 PDF 加可搜索文字层
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
扫描件最大的尴尬在于:鼠标拖选什么都选不中,Ctrl+F 永远没有结果,因为整页只是一张图。OCRmyPDF 是一款免费开源的命令行 OCR 工具,解决的就是"OCR 扫描 PDF"这件事:它不动原始图像,只在图像下方叠加一层可检索的隐藏文字,识别由 Tesseract 引擎完成,全程在本地跑,文件不出机器。产出是一份默认符合 PDF/A 归档标准的 PDF,既能搜索也能复制。
三个平台各一条命令装好
apt install ocrmypdf # Debian / Ubuntu / WSL brew install ocrmypdf # macOS (Homebrew) dnf install ocrmypdf # Fedora装完输入ocrmypdf --help能看到参数列表即算成功。Windows 用户建议走 WSL 路线,Tesseract 与 Ghostscript 等依赖的安装细节见安装文档。
第一次运行:输入扫描 PDF,输出可搜索 PDF
ocrmypdf 扫描.pdf 输出.pdf没有第三个参数就能跑,这是它和其他 OCR 工具最不同的地方。输出文件保留了原图分辨率,文字被切成小片段精确压在对应字符下方,所以复制出来的是干净文本而不是整段糊在一起。
验证文字层:搜索和复制两步
用 PDF 阅读器打开输出.pdf:
Ctrl+F搜一个文中确实出现的词,能命中;- 鼠标拖选一段字,能看到选区高亮,
Ctrl+C粘贴到编辑器里是正常文字。
✅ 两项都通过,文字层就加好了。
参数速查:识别准不准,看这几个开关
| 参数 | 什么时候用 | 起什么作用 |
|---|---|---|
-l chi_sim+eng | 中文、中英混排文档 | 告诉引擎按哪种语言识别,默认是英文 |
--deskew | 整页倾斜 | 自动测算并摆正页面 |
--clean-final | 扫描件有噪点、阴影 | 识别前对图像做清洁处理 |
--pages 1-50 | 文件大、只要部分页 | 只处理指定页码范围 |
--jobs 4 | 页数多、机器核心数够 | 多核并行,页数越多越值 |
最常见的组合是语言加预处理,一条命令搞定:
ocrmypdf -l chi_sim+eng --deskew --clean-final 文档.pdf 输出.pdf-l接 Tesseract 的三字母语言码,加号分隔可写多个;--deskew单独开时只摆正不清理;--pages写1-50,80也能跳着选页。中文语言包要先装,各平台的具体包名见语言包文档。
多个文件和大文件的批量处理
--jobs 0是默认值,意思是按可用核心数并行。手头有几个票据扫描件时,用--output-folder一次入队,结果按原名落进指定目录:
ocrmypdf --jobs 4 --output-folder 输出目录/ 票据1.pdf 票据2.pdf 票据3.pdf几百页的大文件则优先加--pages分段跑,单段失败不影响其他段。完整的批量用法(含bisect思路的排障)在 docs/batch.md 有专门章节。
避坑清单
- 报"page already has text":输入里已有文字层,不是故障。加
--skip-text跳过文字页,或--force-ocr强制重做,两者只能选一个。 - 提示缺少语言数据:对应的 Tesseract 语言包没装,按语言包文档装上再跑
--language参数。 - 大文件中途内存不足:整份文件一次载入是主因,改用
--pages拆成 50 页以内的段。 - 跑得慢:先确认没在单核上串行,
--jobs设为核心数;仍慢就看单页是否嵌了超高 DPI 大图,可用--image-dpi限制识别分辨率。
更多报错的完整解释在官方文档索引的 errors 章节。
下一步去哪儿
想看全部参数,跑ocrmypdf --help或翻 docs/index.md;想自定义识别流程(比如替换 OCR 引擎、跳过某些处理步骤),源码里的内置插件目录是最好的参考实现。
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考