
OCRmyPDF给扫描PDF加文本层的完整指南3步让文件可搜索【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDFOCRmyPDF 是一个免费的命令行工具专门做一件事给扫描版 PDF 加上一层 OCR光学字符识别即把图片里的字读成文字文本让原本只能看、不能搜的扫描件变成可以搜索、可以复制粘贴的文档。它基于 Python 编写依赖 Tesseract 引擎支持 100 多种语言适合个人文档管理者和批量处理扫描件的开发者。本文按安装、上手、实战、进阶四条线走一遍 OCR 处理扫描 PDF 的完整流程。上图是它在终端里跑一次真实任务的完整输出先并发扫描 8 页再逐页 OCR最后压缩优化图像并报告输出文件是符合预期的 PDF/A-2B 格式。整个过程没有任何交互跑完就结束这种喂文件进、拿文件出的形态正是它能被写进脚本的原因。为什么它比常见 OCR 方案省心很多做 PDF 文本识别的开源工具都有几个通病识别出的文字位置对不上图片复制出来是乱序的处理过程中把图片分辨率改掉了或者输出的 PDF 本身不合法。OCRmyPDF 的作者正是因为市面上没有满意的工具才写了它README 里把这几条列得很直白。它的几个关键做法值得单独说文字放在图片底下识别出的文字按原始坐标精确贴在对应位置所以复制出来的顺序和排版一致不会出现整段错位默认输出 PDF/A这是 ISO 标准的归档格式要求字体等资源全部内嵌适合长期保存很多法院和档案馆也指定用它输出经过验证输入和输出文件都会做合法性检查失败时不会给你留一个坏文件默认用满所有 CPU 核心几千页的大文件也能正常跑还有一条隐私上的好处它是纯本地运行文档不会上传到任何在线服务。安装 OCRmyPDF各系统一条命令OCRmyPDF 支持 Linux、macOS、Windows 和 FreeBSD各平台都装好了现成包不用自己从源码编译brew install ocrmypdf # macOS apt install ocrmypdf # Debian / Ubuntu装好后运行ocrmypdf --help能看到全部参数说明这是它内置的文档比翻网页快。提示OCRmyPDF 本身是 Python 包但识别工作交给外部的 Tesseract 引擎。中文文档请先装好语言包例如 Debian 上用apt-get install tesseract-ocr-chi-sim否则-l chi_sim会找不到对应语言。快速上手一条命令完成第一次 OCR最小用法就是输入文件 输出文件两个参数ocrmypdf 扫描文档.pdf 可搜索.pdf它读取左侧扫描件把识别出的文字作为透明文本层叠在图像下方输出右侧文件。你可以打开输出文件验证三件事用 PDF 阅读器全选复制一段文字看内容是否和排版顺序一致在搜索框里输入文中某个词确认能搜到跑的过程中终端会显示进度条结束时报告Output file is a PDF/A-2B之类的验证结果真实用法三种最常见的场景扫描件斜了、有噪点。扫描仪出的页面经常整体歪掉几度文字发虚。在命令里加上--deskew --clean两个参数就行前者自动检测倾斜角度并校正后者调用 unpaper 做去噪和边缘清理。处理完的页面是正的文字也干净OCR 准确率自然比直接识别歪图高。只有图片没有 PDF。手机拍的票据、照片格式的资料直接把图片文件名当输入即可它会把 JPG、PNG 转成单页 PDF 再走 OCR 流程。ocrmypdf 照片.jpg 输出.pdf一条命令完成不需要先手动转格式。批量处理一个文件夹。文档多到手动跑不过来时社区推荐用 GNU Parallel 配合它详见 docs/batch.md比如parallel --tag -j 2 ocrmypdf {} output/{} ::: *.pdf同时跑两份文件、逐份输出到 output 目录--tag让报错信息带上文件名方便定位是哪个文件出问题。OCRmyPDF 内部本身也会用满多核所以外层一般只开少量并发避免把机器塞满。进阶几个真正用得上的参数-l指定语言混合语料用加号连接多个语言码如-l engchi_sim。它只是给 Tesseract 一个往哪些语言上猜的提示装了对应语言包才能生效--sidecar导出纯文本在生成可搜索 PDF 的同时把识别出的文字写成 txt 文件方便直接拿去校对或做全文检索--mode控制已有文字页面的处理方式默认遇到带文字的页面会直接报错退出防止重复处理。--mode skip表示跳过这些页只处理扫描页--mode redo会剥掉旧的文本层重新识别适合上次识别得不准、想重来的情况--title/--author写元数据顺手给输出文件填上标题和作者归档时少一步手工操作参数之间也有搭配讲究比如--mode redo目前不能和--deskew、--clean-final同时用遇到冲突它会直接报错提示不会闷头跑错。小结OCRmyPDF 把扫描件能搜、能复制、能长期存这三件事合成了一条命令本地运行、输出带验证、默认 PDF/A新手跑通第一条命令后剩下的就是按场景挑参数的过程。更多选项和背景知识可以看官方文档目录下的 docs/introduction.md介绍工作原理和 docs/advanced.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),仅供参考