OCRmyPDF 扫描PDF加OCR文本层:从安装到并行处理实操
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
一份 200 页的纯扫描 PDF,逐页人工识别文本几乎不现实。OCRmyPDF 是一个命令行工具,它在不改动原图的前提下,为扫描 PDF 叠加一层位置对齐的 OCR 文字,让文档变得可搜索、可选择、可复制,并默认输出符合归档标准的 PDF/A。
项目定位与核心能力
OCRmyPDF 是纯 Python 实现的 OCR 工具,底层依赖 Tesseract 引擎和 Ghostscript,输入普通 PDF(或图片),输出经过校验的可搜索 PDF。它解决的核心问题是:扫描件只有图像没有文字,无法检索和复制。
文本层与图像层分离,保证复制粘贴可用
文字层被精确定位在图像下方,选中的文字与肉眼所见一一对应,而不是常见工具那种文字层错位、复制出来是乱序的问题。
ocrmypdf 扫描.pdf 可搜索.pdf支持 100 多种语言与多语言混合识别
语言参数透传给 Tesseract,代码采用 ISO 639-3,混排文档可以用+连接多个语言代码。
ocrmypdf -l eng+fra 英法混排.pdf 输出.pdf默认产出 PDF/A,且输出文件经常比输入更小
默认通过 Ghostscript 转换为 PDF/A(ISO 长期归档标准),同时压缩内嵌图像,最终体积通常小于原文件。
ocrmypdf --output-type pdfa 扫描.pdf 归档.pdf安装与上手
第 1 步:安装
| 系统 | 安装命令 |
|---|---|
| Ubuntu / Debian | apt install ocrmypdf |
| macOS (Homebrew) | brew install ocrmypdf |
| Windows (WSL) | apt install ocrmypdf |
第 2 步:最小可用命令
输入输出两个位置参数即可,源文件保持不动,结果写入新文件。
ocrmypdf 扫描.pdf 可搜索.pdf第 3 步:最常用参数:-l 语言
语言代码对应 Tesseract 语言包,中文简体用chi_sim,英文用eng。
ocrmypdf -l chi_sim 中文扫描.pdf 输出.pdf进阶用法
校正倾斜扫描件:--deskew
扫描仪进纸不正会导致文字斜排,识别率随之下降。--deskew在 OCR 前把页面拉直,适合倾斜在几度以内的文档。
ocrmypdf --deskew 输入.pdf 输出.pdf多语言混合文档:-l 组合
一份文档里英文为主、夹少量其他语言时,用+拼接语言代码。注意每个语言对应的 Tesseract 语言包都要事先装好,缺失的语言代码会直接报错。
ocrmypdf -l eng+deu 双语合同.pdf 输出.pdf大文档多核并行:--jobs
--jobs指定并行核心数,数千页的大文档处理时间近似按核数缩短;内存受限时适当调小该值即可。
ocrmypdf --jobs 4 大型档案.pdf 输出.pdf适用场景与已知边界
典型适用场景
- 历史档案与古籍数字化:把只能查阅的扫描件变成可全文检索的资料,引用时直接复制原文。
- 法律与合同归档:默认输出 PDF/A,专为长期保存设计,配合文档管理系统入库即可检索。
- 扫描图片转 PDF:直接丢入
jpg/png,生成单页可搜索 PDF,省去单独的转换步骤。
已知边界
- 图像本身只有 150 DPI 甚至更低时,识别率会明显下降,预处理参数救不回丢失的细节,最好重扫。
- 严重倾斜(超过十几度)、大面积阴影或模糊的页面,
--deskew和--clean-final的收益有限,先检查扫描质量再跑。 - 已经有文本层的 PDF 不是它的目标用户,直接处理会提示页面已含文本。
FAQ
识别出的文字位置错位,复制出来是乱码怎么办
用--redo-ocr丢弃旧文本层重新识别。若原文件里本来就有残留文本层干扰,先确认扫描源是纯图像 PDF。
处理速度慢,如何加速
用--jobs指定 CPU 核心数并行处理,例如--jobs 4;多核下页数越多收益越明显。
中文文档识别率低
先确认装了简体中文语言包(如tesseract-ocr-chi-sim),命令里显式指定-l chi_sim;识别效果仍不理想时,加--deskew --clean-final做预处理再试。
下一步
建议先用单个 10 页文件加-l参数跑通流程,确认复制粘贴正常后再处理整个目录。OCRmyPDF 本质是脚本友好的命令行工具,适合放进批处理脚本或接入文档管理系统。小提示:批量跑之前,先抽查几页的识别质量,比事后整批返工便宜得多。
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考