OCRmyPDF 使用教程:为扫描版 PDF 免费添加可搜索文本层 OCRmyPDF 使用教程为扫描版 PDF 免费添加可搜索文本层【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDFOCRmyPDF 是一个开源命令行工具作用是在扫描版 PDF 里垫一层可识别、可复制、可搜索的 OCR 文本原始扫描图像保持原样。它免费、可离线运行适合需要把扫描件变成可检索文档的个人、档案管理人员以及要长期归档 PDF/A 文件的团队。先看它是怎么工作的三个组件串起整条流水线OCRmyPDF 本身是纯 Python 程序真正干活的是它调度的几个外部组件渲染把 PDF 每一页转成图像默认用 pypdfium2备选 Ghostscript识别调用 Tesseract OCR 引擎依赖它 100 多种语言的语言包写回把识别出的文字按坐标贴回原 PDF图像不动校验对输入和输出都做 PDF 校验默认输出 PDF/A-2b 归档格式可选预处理纠偏deskew、清理背景等由外部工具 unpaper 完成整条链路的上下游关系以及为什么不能拿 Ghostscript 渲染一下再塞回 Tesseract就了事官方文档在 docs/introduction.md 里讲得很细。你省掉的其实是四步而不是一次 OCR很多工具也能跑 Tesseract但产出要么文字层错位复制粘贴对不上、要么把原图重新采样导致质量损失、要么生成超大或非法的 PDF。OCRmyPDF 的价值在于把这些细节包掉了文字位置对准图像。识别结果逐字定位后写回而不是简单附在页面末尾这是复制粘贴可用的前提。原图无损保留。它对每一页独立分析色彩空间和分辨率把 OCR 信息作为独立图层叠加回去嵌入图像不会被重编码或降采样多数情况下输出文件比输入还小因为它顺带做了图像优化。默认产出归档级 PDF/A。普通 PDF 工具不会考虑长期存档问题。PDF/A 把字体、资源全部内嵌并禁用 JavaScript 等不稳定特性OCRmyPDF 默认输出 PDF/A-2b且会用 Verapdf 校验合规性。混合页面自动跳过。如果某页本身已有文字生数字页面OCRmyPDF 默认直接跳过不浪费算力也不破坏原文。安装并跑通第一条命令各平台的安装都是一行命令平台命令Debian / Ubuntu / WSLapt install ocrmypdfmacOSbrew install ocrmypdfFedoradnf install ocrmypdf tesseract-osd更多平台的步骤见 docs/installation.md。装完先用ocrmypdf --help确认版本然后跑最简命令ocrmypdf 扫描.pdf 可搜索.pdf输出就是可搜索的 PDF/A 文件同时它会利用多核并行处理各页。想输出普通 PDF 而不是 PDF/A加--output-type pdf即可。上面这类老字体、低对比度扫描件是典型的测试素材官方用它验证等宽字体场景下的识别效果。常用参数速查语言代码是 ISO 639-2/3 三字母码用ocrmypdf --list-langs查看本机装了哪些语言包如chi_sim为简体中文。参数作用什么时候用-l engfra指定识别语言可多个非英文文档必加默认按英文识别--deskew校正页面轻微倾斜扫描件歪斜时--rotate-pages自动纠正页面旋转方向扫描时横竖页混放--skip-text已有文字的页直接跳过混合文档只补没有文字层的页--force-ocr对所有页强制重做 OCR原有文字层不可靠时--sidecar 输出.txt同时导出一份纯文本想要文本备份或做全文索引--optimize 2 --jpeg-quality 60提高压缩强度、降低 JPEG 质量输出文件偏大时--jobs 4限定并行核心数默认用满所有核心机器紧张时限制--title … --author …写入元数据归档前补齐文档信息--output-type pdf输出普通 PDF不需要 PDF/A 时语言包安装方法按发行版不同docs/languages.md 列了 apt、dnf、brew 各自的包名。批量处理一条循环搞定一整个目录对当前目录下所有 PDF 原地处理只有成功才覆盖原文件find . -name *.pdf -exec ocrmypdf {} {} \;文件多时建议配合 GNU Parallel 限制并发官方在 docs/batch.md 里给了带--tag的并行写法方便出问题时定位到具体文件。仓库里的 misc/batch.py 和 misc/watcher.py 分别是批量脚本和丢进目录即处理的监听脚本可以直接借鉴。什么时候好用什么时候会翻车先说它擅长的清晰扫描件、混合文本/图像 PDF、上千页的大文件它按页切分并行、需要 PDF/A 合规校验的归档流程。再说边界这些都继承自 Tesseract 引擎不识别手写体手写档案它无能为力多栏排版可能读串行两栏布局有时会被按跨栏顺序拼接扫描件质量决定输出质量模糊、低 DPI 的图识别率明显下降不输出段落、标题等结构信息只给文字和坐标框两个容易踩的坑PDF/A 会剥掉交互元素。超链接、表单、JavaScript 在转 PDF/A 时可能被移除或停用。如果你的 PDF 里有需要保留的链接先用--output-type pdf试跑对比。语言选错识别结果会是乱码。-l参数不指定时默认按英文处理中文文档不加-l chi_sim基本全错混合文档要把所有出现的语言都列上例如-l chi_simeng。识别效果不满意时优先尝试--deskew、调整--image-dpi而不是反复换参数碰运气具体报错含义可查 docs/errors.md。写在最后装好语言包、记住-l参数、给扫描件先纠偏这三件事做到位OCRmyPDF 的日常使用基本就是一条命令的事。参数拿不准时ocrmypdf --help和 docs/cookbook.md 是最快的查询入口剩下的交给它按页并行跑完就好。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考