3 分钟给扫描 PDF 加上 OCR 文本层: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 一次处理就能全解决。它给扫描 PDF 加上 OCR 文本层、把歪斜页面摆正,最后产出一份可搜索 PDF。
3 分钟跑通第一次:安装并执行首个 OCR
先装好工具,再跑第一条命令,五分钟内就能看到效果。
macOS / Linux / Windows 安装
macOS:用 Homebrew 一条命令装齐所有依赖,最省心:
brew install ocrmypdfLinux:Debian、Ubuntu 这类发行版直接用系统包管理器:
apt install ocrmypdfWindows:先装 Python 和 Tesseract,再用 pip 装程序本体:
winget install Python.Python.3.12 winget install UB-Mannheim.TesseractOCR pip install ocrmypdf三条命令跑完,ocrmypdf --version能打印版本号就算装好了。各发行版、WSL 等更细的步骤见官方安装文档。
第一条命令:把一份扫描件变成可搜索 PDF
一份没有文本层的扫描稿:整页都是图像,什么都搜不到
ocrmypdf input.pdf output.pdf中间这步做的事:把每页扫成图像,交给 Tesseract 识别文字,再把文字按原位置嵌回 PDF。打开 output.pdf,在搜索框里敲任意单词都能命中,而页面外观和扫描件一模一样——这层看不见的文字就叫文本层。
📄 四类常见问题与 OCRmyPDF 的解法
OCRmyPDF 处理过程一览:各阶段进度、压缩节省比例,最后校验输出符合 PDF/A-2B
页面歪斜或方向颠倒:自动校正与旋转
手机拍文档十有八九是斜的。加两个参数就能自动摆正:
ocrmypdf --deskew --rotate-pages input.pdf output.pdf--deskew让程序算出每页倾斜了多少钱并转回来;--rotate-pages识别页面朝向,把横着或倒着的页转正。两个一起加,拍得再随意也能出水平文本。
噪点、泛黄、背景杂乱:图像清洁
脏背景会直接拉低识别率。清洁参数如下:
ocrmypdf --clean --remove-background input.pdf output.pdf--clean在识别前去掉斑点和杂色,--remove-background把泛黄、灰底这类浅色背景压成纯白。老报纸、旧档案这种背景不均匀的扫描件用这对参数效果最好,图干净了,识别自然准。
多语言混排:指定语言包
正文中文、附录英文,默认只认英文的话其他语言就全错了。用-l指定语言代码,多个用+连起来:
ocrmypdf -l chi_sim+eng input.pdf output.pdf表示"中英文混排,两种都识别"。支持的语言和语言包安装方法见语言支持文档。
要保存数十年:PDF/A 归档与压缩
OCRmyPDF 默认输出PDF/A——国际标准化组织定义的长期存档格式,会把字体、色彩信息完整嵌进文件,保证多年后打开看到的还和现在一样。体积想再小一点,加--optimize,取值 1–3,数字越大压得越狠,默认是 1。归档级 PDF 加上图片压缩,老文档体积能省一半以上,细节见高级功能文档。
它是怎么"校正"的
歪斜校正靠的是 Tesseract 的方向检测(OSD)能力:它扫一遍页面,统计所有文字行的走向,算出整页歪了多少度、朝向是正的还是倒的。OCRmyPDF 拿到这个角度把页面转回去,方向颠倒的页也会一并纠正。
一份带倾斜的扫描稿:校正前的典型输入
--clean和--remove-background背后是 unpaper 这个图像预处理程序。它先分析页面结构——文字块在哪、页边在哪——再做去噪、去斑、背景压平。识别之前把图洗干净,比识别完再修省事得多。
常见坑与进阶用法
--sidecar:加一个输出路径,PDF 旁边多产出一份纯文本:ocrmypdf --sidecar out.txt input.pdf output.pdf。适合做全文检索、归档索引。--optimize:三档压缩级别,1保守、3最狠。归档旧照片多的文档时用 2 或 3,体积差距明显。- 批处理:一个文件夹的扫描件写个循环就行:
for f in *.pdf; do ocrmypdf --deskew "$f" "ocr_$f"; done把当前目录所有 PDF 逐个加文本层并摆正,晚上跑,早上收。
OCRmyPDF 把"扫描件不能搜、歪着没法看、太大不好存"这三件事收进了一条命令。挑一份手头的扫描件,按上面的步骤跑一遍——加--deskew摆正、用--optimize 2控体积,然后打开输出文件搜一个词。能搜到,就说明文本层已经就位。
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考