OCRmyPDF 完整指南:一步给扫描 PDF 加上可搜索的文本层
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
你硬盘里大概存着不少扫描版 PDF:合同、发票、老论文、古籍影印件。它们只能看,搜不了关键词,复制不出一个字。OCRmyPDF 就是一个免费的命令行工具,给这类扫描件加一层 OCR 文本——处理完页面外观不变,但你已经可以在阅读器里直接搜索和复制文字了。
它的工作方式很直接:把每一页当图片送进 Tesseract 引擎识别,再把识别出的文字按原位置贴回页面下方,形成一层不可见的文本。默认输出是经过校验的 PDF/A 格式,适合长期存档;它还会顺手压缩页面里的图片,输出文件常常比输入更小。引擎支持 Tesseract 提供的 100 多种语言,默认自动用满你机器的所有 CPU 核心。下面这张图就是一份典型的扫描件素材——OCRmyPDF 的测试库里就靠这种打字机手稿来验证识别效果:
要记的安装命令
按系统挑一条执行就行,官方在 docs/installation.md 里对每个发行版都写得更细:
# Debian / Ubuntu / WSL sudo apt install ocrmypdf # macOS brew install ocrmypdf # 其他情况,或想要最新版 pip install ocrmypdf装完跑一下ocrmypdf --version确认。两个依赖要留意:Tesseract 引擎和 Ghostscript 必须随包装好(系统包管理器装的版本已包含);而语言包是单独装的,英文默认就有,识别中文要先装对应的tesseract-ocr-chi-sim。
30 秒做出第一份可搜索 PDF
第一条命令只需要两个参数——输入和输出:
ocrmypdf --deskew --rotate-pages input_scan.pdf output_searchable.pdf--deskew把歪掉的页面摆正,--rotate-pages自动纠正 90 度错向的页面,这两个参数对扫描件基本是白捡的改进,建议以后都带着。命令跑完后,用任意 PDF 阅读器打开输出文件,按关键词搜索试试——这就是那层隐形文本在工作。
💡 默认情况下,如果某页已经有文本(比如数字原生 PDF 或处理过一次的扫描件),OCRmyPDF 会直接报错退出,避免重复处理。这是保护机制,不是故障。
调出效果的 3 个参数
多语言混排用-l,多个语言用加号连接:
ocrmypdf -l eng+chi_sim 双语文档.pdf 输出.pdf已有文本的页面怎么处理,用--mode一个参数说清,这是官方文档 docs/advanced.md 里推荐的方式:
| 模式 | 行为 |
|---|---|
default | 页面已有文本就报错退出,防止重复处理 |
skip | 已有文本的页原样保留,只处理纯扫描页 |
force | 所有页重新栅格化并 OCR,等于推倒重来 |
redo | 剥掉旧的隐形文本层再重新识别 |
批量处理不需要写脚本,一行 find 搞定整个文件夹:
find ./scanned -name "*.pdf" -exec ocrmypdf {} {}.ocr.pdf \;几百页的大文件不用担心,它默认多线程跑,几千页的文档也能正常处理。
出问题先查这 3 处
识别不准、字太小?用--oversample 600强制把页面按 600dpi 送进识别引擎,低分辨率扫描件的提升会很明显:
ocrmypdf --oversample 600 低清扫描.pdf 修复后.pdf页面脏、有噪点?加上--clean,它背后是 unpaper 在帮你去噪、修边。如果扫描歪得很厉害,先--deskew再识别的顺序不用你管,命令里两个参数同时给即可。
输出文件偏大?加上--optimize 2(1 到 3 是力度档位),它会压缩页面图像,很多场景下输出反而比输入小。
🧰 报错里出现语言相关提示时,九成是语言包没装齐:先
apt-cache search tesseract-ocr找到对应语言的包装上,再重跑。
从最简单的两步开始:装好工具,对你手头任意一份扫描件跑一次ocrmypdf 输入.pdf 输出.pdf,然后立刻在阅读器里搜一个词验证效果。剩下的参数,等你的扫描件暴露出什么问题再按上面的对照表挑着用。一份以前只能翻页看的文档,从此变成可以搜索、可以复制、还能长期归档的资产——这就是这一条命令换来的东西。
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考