3分钟给扫描PDF加上可搜索文字层ocrmypdf命令行OCR完整指南【免费下载链接】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/A 归档格式。先认识 ocrmypdf它到底帮你做什么一句话定位把只能看图的扫描 PDF 变成能搜、能复制的可搜索 PDF同时不动原文档里已有的图像和布局。三个最值钱的能力文字层精准贴合识别出的文字以不可见图层贴在原始图像正下方复制粘贴出来的顺序和版面一致不会出现文字对不上图的尴尬默认输出 PDF/A符合 ISO 长期归档标准文件还经过 VeraPDF 校验适合法务、财务这类要留存多年的场景本地全离线文档不出本机隐私敏感的数据病历、合同、财报可以放心处理它内部用 Tesseract 做识别引擎用 Ghostscript/pypdfium2 做页面栅格化纯 Python 调度Linux、macOS、Windows 通吃。三分钟上手从安装到第一份可搜索 PDF第一步装好工具链ocrmypdf 本体是纯 Python但它依赖两个外部程序Tesseract识别引擎和 GhostscriptPDF 处理。用系统包管理器一条命令全搞定# Debian / Ubuntu sudo apt install ocrmypdf tesseract-ocr ghostscript # macOSHomebrew brew install ocrmypdf tesseract ghostscript第二步跑通第一条命令ocrmypdf 扫描合同.pdf 可搜索合同.pdf就这样两个参数搞定输入文件、输出文件。跑完你会得到一份默认 PDF/A 格式、带 OCR 文字层、且尺寸往往比原文件更小的新 PDF。打开它CtrlF 搜任何词能搜到了。想看所有选项内置帮助就够ocrmypdf --help。按场景拆解核心能力批量处理几十几百份文件怎么跑单文件跑完再跑下一个太慢官方推荐配 GNU Parallel 做文件级并发docs/batch.md 有完整说明# 目录下所有 PDF 并发处理每个文件独立输出到 output/ parallel --tag -j 2 ocrmypdf {} output/{} ::: *.pdf要点-j 2控制同时跑 2 个文件因为每个 ocrmypdf 自己就会用满多核--jobs N可控制单文件内的页数并发并发数叠太多反而争抢 CPU。处理整棵目录树则用find . -name *.pdf | parallel --tag -j 2 ocrmypdf {} {}边界提醒它适合文件级批量不适合实时流式场景上千页的单文件也能跑官方称经百万级 PDF 实战检验但耗时基本与页数线性相关。多语言与混合内容中英文混排、老文献识别引擎是 Tesseract支持 100 种语言语言包单独安装、用 ISO 三字母代码声明# 装简体中文语言包 sudo apt install tesseract-ocr-chi-sim # 中英混排文档 ocrmypdf -l engchi_sim 期刊.pdf 期刊.pdf几个容易踩细节不指定-l时默认只按英文识别中文文档不装语言包会搜不到老德文文献有专门的 Fraktur 字体包deu_frak维吾尔语、乌兹别克语等还有西里尔/拉丁变体包混合语言是提示机制你列出文档里会出现的所有语言Tesseract 逐词判断顺序不影响结果归档合规与元数据管理把扫描件变成能存十年的档案默认行为已经是合规向的输出 PDF/A-2b、字体内嵌、文件经校验。想再进一步ocrmypdf \ --title 2024年采购合同扫描件 \ --author 法务部 \ --pdfa-image-compression jpeg \ --optimize 2 \ 合同.pdf 合同.pdf--pdfa-image-compression控制 PDF/A 里图像的重压缩策略--optimize 0~3控制体积优化力度——扫描件常常越处理越小因为优化器会重新编码低质量大图。边界它不做脱敏/涂黑虽然社区有配合 redaction 的用法也不能给加密 PDF 直接加层密码得先处理。图像直接进、PDF 直接出它不挑输入JPG/PNG/HEIC 直接喂自动转成单页可搜索 PDF——拍照存档场景非常顺手ocrmypdf 发票.jpg 发票.pdf实战把一整箱扫描论文变成可检索档案库需求一个目录里 37 份中英混排扫描论文部分页面有轻微歪斜和噪点要求输出可搜索的 PDF/A并统一写入标题元数据。完整方案就三行# 1. 装多语言包 sudo apt install tesseract-ocr-chi-sim # 2. 并发处理整个目录去歪清理双语识别PDF/A find ./papers -name *.pdf | parallel --tag -j 2 \ ocrmypdf --deskew --clean -l engchi_sim {} {} # 3. 抽查一份确认能搜到中文 pdftotext papers/某论文.pdf - | grep 摘要--deskew校正倾斜--clean在识别前清噪点注意它只影响识别用图不改最终版面若想最终页面也清理加--clean-final但激进参数可能移动文字位置详见 docs/advanced.md。最后一步用pdftotext抽查比肉眼看几十份可靠得多。避坑指南这 5 个坑最多人踩page already has text 报错输入文件本身带文字或已被 OCR 过默认模式会直接拒绝。按需求三选一--mode force全部重扫会栅格化矢量内容、--mode skip跳过已有文字页、--mode redo剥掉旧 OCR 层重新识别。这是 docs/errors.md 里最高频的报错。not a valid PDF多为拷贝不完整的损坏文件。先用 Ghostscript 重写一遍再喂给它gs -o out.pdf -dSAFER -sDEVICEpdfwrite input.pdf。Tesseract 报 cannot open config file hocrTesseract 安装不完整或 PATH 里混了多个版本重装/清理后tesseract --list-langs能列出语言包即恢复。中文识别结果稀烂99% 是忘了-l chi_sim或没装语言包默认纯英文模型对汉字基本无能为力。速度不如老版本新版默认开启了体积优化PDF/A 转换 图像重编码慢但更小。赶时间时用--optimize 0 --output-type pdf --skip-big跳过优化详见 docs/performance.md。另有一条安全边界要记住它不是恶意 PDF 防护工具来源不明的 PDF 建议在 Docker 或虚拟机里跑docs/pdfsecurity.md。横向对比什么时候选 ocrmypdf维度ocrmypdfAdobe AcrobatPro云端 OCR 服务各类 API成本免费MPL-2.0订阅制按量付费数据是否出本机完全本地本地上传云端PDF/A 输出默认且自带校验需手动 Prepress视服务而定批量/脚本化命令行 插件天生适合GUI 为主适合 API 集成多语言100Tesseract 语言包好好识别精度上限Tesseract 水平可换引擎插件更高通常更高适合场景批量、归档、隐私敏感个人偶发、编辑排版高精度、已上云流水线选它文件量大、要归档合规、数据不能出内网、流程要进 CI 或脚本。别选它需要交互式涂改/表单编辑、对单页复杂版式表格、公式密集要求极致精度——这类需求可以考虑换装 PaddleOCR/EasyOCR 插件或用商业方案。生态与延伸资源官方文档安装、语言包、高级选项的权威来源docs/cookbook.md常用组合的现成配方抄作业首选docs/plugins.md 与 builtin_plugins/插件机制源码Tesseract、Ghostscript、优化器都在这里可整体替换 OCR 引擎docs/api.md / api.py想在 Python 里以库方式调用而不是拼命令行走这里misc/watcher.py 与 misc/webservice.py文件监听自动 OCR、Streamlit 网页服务两个官方示例搭无人值守管线直接用问题反馈走仓库 issue 区附最小复现命令和--version输出回复会快很多写在最后ocrmypdf 的价值不在又有一个 OCR 工具而在于它把整条链路——去歪、清噪、多语言识别、文字层贴合、PDF/A 校验、体积优化——收敛成了一条可靠的命令让你把时间花在定义档案库上而不是和单页异常搏斗。今晚装好它明天你的扫描库存就能被全文搜索了。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
