断网环境安装 OCRmyPDF 完整指南:把扫描件批量转成可搜索 PDF
【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF
机房、船载终端、内网服务器——机器连不上外网,手里却压着一摞扫描件,想检索一个词都要翻半天。OCRmyPDF 离线流程可以解决这件事:在有网的地方备齐四个组件,拷进隔离网络环境装好,之后每台机器都能独立给扫描件生成文本层,输出可搜索、可复制的 PDF。
出发前的一次性清单
在有网机器上备齐这四样,之后每个断网环境都能反复使用,不用再碰外网:
| 组件 | 最低版本 | 说明 |
|---|---|---|
| Python | 3.10+ | 当前发布按 3.11+ 构建,建议直接装 3.11 或更新 |
| Ghostscript | 9.54+ | 负责 PDF 渲染与输出 |
| Tesseract OCR | 4.1.1+ | 识别引擎本体 |
| OCRmyPDF 本体 | 最新版 wheel 或源码 | 依赖上列三项协同工作 |
注意语言训练数据是单独下发的:把需要的.traineddata文件(英文eng、简体中文chi_sim等)一并拷进 U 盘,这是离线环境里最常被漏掉的一件。
Linux / Windows / macOS 断网安装 OCRmyPDF 速查
Linux 断网安装:Debian 系先下载后 dpkg
在联网的同架构机器上把依赖拉成.deb:
apt-get download ocrmypdf ghostscript tesseract-ocr python3拷到断网机器后安装,缺的残留依赖顺手补上:
dpkg -i *.deb && apt-get install -fFedora 系把两条命令换成dnf download与rpm -ivh *.rpm即可。
Windows 断网安装:四个安装包按序落地
Python、Ghostscript、Tesseract 各自有独立安装包,在联网机上存下来,按 Python → Ghostscript → Tesseract 的顺序装到断网机上。OCRmyPDF 本体装离线 wheel:
pip install ocrmypdf-*.whlmacOS 断网安装:联网机备料,U 盘带走
联网机上先让 Homebrew 把依赖缓存下来:
brew install --download-only ocrmypdf ghostscript tesseract把缓存的 bottle 文件和 OCRmyPDF 的 wheel 一起拷进 U 盘,再在断网机上安装。注意 macOS 上 Homebrew 严格来说只能离线装一部分,最稳妥的做法还是整机换机或走内网源。
落地自检:3 分钟确认断网机器能跑
- 跑
ocrmypdf --version,它能同时核对 Python、Ghostscript、Tesseract 三个外部依赖的版本是否达标,报错就先修哪条。 - 确认语言包文件真的落盘:Linux 的 tessdata 目录是
/usr/share/tesseract-ocr/4.00/tessdata/,Windows 是C:\Program Files\Tesseract-OCR\tessdata\,目录里能看到eng.traineddata才算齐。 - 最小运行命令,拿一张扫描件试跑:
ocrmypdf tests/resources/typewriter.pdf tests/resources/out.pdf,产物里能选中文本,整条链路就算通了。
参数速查:离线 OCR 最常用的六个选项
| 选项 | 作用 | 什么时候用 |
|---|---|---|
--language | 指定识别语言,如eng chi_sim | 混排文档必配,缺了识别结果全是乱码 |
--skip-text | 跳过已有文本的页面 | 文档只有一部分是扫描件时,省时间 |
--clean | 对扫描图像做预处理 | 扫描件噪点多、底色发灰,识别率上不去时 |
--output-type | 指定输出类型 | 需要长期存档就用pdfa |
--optimize | 优化等级 0–3 | 输出体积要压下来时调高,代价是耗时 |
--pages | 只处理指定页码 | 文件大或只想补识别某几页 |
批量与自动化:一个循环搞定一整目录
for f in *.pdf; do ocrmypdf "$f" "ocr_$f"; done需要固定一套参数时,写个配置文件再用--config指过去,不必每次敲全命令行;文件会持续丢进某个目录的话,仓库里的 misc/watcher.py 可以监听目录、新文件进来自动触发识别。
卡住了怎么办
| 错误 | 原因 | 处理动作 |
|---|---|---|
| 启动即报依赖缺失或版本不达标 | Ghostscript / Tesseract 没装好或版本太低 | 按ocrmypdf --version的提示重装对应组件 |
| Tesseract couldn't find a language data file | 语言包没拷进 tessdata 目录 | 把.traineddata放进上文 Linux / Windows 两个路径之一,再重跑 |
| 处理大文件时内存不足、进程被杀 | 整份 PDF 一次性渲染撑爆内存 | 用--pages分批处理,或给机器加交换空间 |
更多参数细节和排错思路,见仓库里的 docs/introduction.md 与 docs/errors.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),仅供参考