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 却必须今天就能搜索、复制。给扫描页加文本层的 OCR 过程本身不需要网络真正需要联网的只有下载安装器和下载语言包这两件事。把这些补给动作提前在有网机器上做完离线机就是一台自给自足的扫描文档加工站。下面从备料清单、三大系统部署、装完自检到实战跑一遍全程可照着做。离线能力边界哪些能跑、哪些要提前备先划清能做和不能做的范围避免跑一半发现缺东西。场景是否支持前提或说明PDF / 图片 OCR 生成文本层✅识别、排版、压缩全部本地完成识别中文、日文等语言✅对应 .traineddata 已随安装包带过去--clean 清洗、--optimize 压缩✅依赖本地 unpaper、Ghostscript、pngquant下载新语言包❌在有网机下载拷入离线机升级 OCRmyPDF 及依赖❌离线机沿用已部署版本即可一句话把所有补给前移到有网环境离线之后什么都不缺。有网机上的备料清单备料的核心是一次下齐版本要求均出自项目的安装文档。组件用途获取方式Python 3.11推荐 3.12运行 OCRmyPDF官方安装程序或发行版包Tesseract 4.1.1OCR 识别引擎发行版包管理器 / 官方安装程序Ghostscript 9.54页面栅格化、PDF/A 转换系统包fpdf2、uharfbuzz 等 Python 依赖渲染文本层pip download ocrmypdf -d ./wheels.traineddata 语言包各语言识别数据从 tessdata 源下载随安装包拷贝fonts-noto 字体包正确渲染多语种文字apt install fonts-notounpaper / pngquant / jbig2enc--clean、--optimize 2/3、单色压缩发行版包管理器可选⚠️ 最容易漏的是 .traineddata它不随 Tesseract 默认全量安装离线要识别中文的话务必把chi_sim.traineddata放进拷贝清单直接丢进目标机器的tessdata目录。三大系统落地部署三个系统思路一致把在线渠道能拿到的东西全部落成文件再在离线机上本地安装差异只在拿文件的方式。系统在线参考离线部署要点Linuxapt install ocrmypdf包文件预缓存本地安装Windowswinget 装 Python / Tesseract安装器 wheels 目录整体拷贝macOSbrew install ocrmypdf整包迁移 Homebrew 前缀Linux包文件预缓存后本地装在有网机上用发行版自带命令全量缓存依赖拷到离线机再装。# 有网机把依赖缓存为 deb 文件 apt-get download ocrmypdf ghostscript tesseract-ocr python3-pip # 离线机本地安装 dpkg -i *.deb装完跑ocrmypdf --version验证。Fedora、Alpine 同理换dnf download/apk缓存即可离线机没有 JBIG2 编码器也能跑只是输出文件大一些。Windows安装器加本地 wheel64 位 Python、Tesseract、Ghostscript 三个安装器按顺序装完OCRmyPDF 本体用本地 wheel 安装全程不碰 PyPI。# 有网机下载全部 wheel pip download ocrmypdf -d ./wheels # 离线机纯本地安装 pip install --no-index --find-links./wheels ocrmypdf--no-index确保安装只读本地目录预期ocrmypdf --version正常输出。官方不支持 32 位 Windows离线机 Python 位宽不对就得回有网机重做。macOS整包迁移 Homebrew有网机先装好全量语言包和 OCRmyPDF再把整个 Homebrew 目录连同下载缓存打包迁移。# 有网机先装全量语言包再装本体 brew install tesseract-lang brew install ocrmypdf离线机装好 Homebrew 后解包即用不要指望在离线机上临时补包。装完先跑这两条命令装完别急着处理文件先验货。ocrmypdf --version tesseract --list-langs第一条打印版本且无报错说明 Python、Tesseract 等外部依赖就位第二条列出可用语言包离线识别中文前确认chi_sim在列表里。症状对策Tesseract 找不到 language data file.traineddata 放入 tessdata非常规位置用 TESSDATA_PREFIX 指向打不开 config file hocr手工拼的 tessdata 缺 configs/ 子目录从完整安装补齐某些文字没有可用字形装对应文字体系的 Noto 字体包文本层仍可搜索大文件内存不足--pages 分段处理或加大交换空间--clean 报缺 unpaper装 unpaper装不了就省掉 --clean其余不受影响实战一张扫描件到可搜索 PDF拿仓库自带的黑白打字机扫描件跑一遍完整流程。ocrmypdf --language eng --clean --output-type pdfa tests/resources/typewriter.png recipe.pdf参数逐条说明--language eng识别语言中文文档换成chi_sim语言包须已就位--clean识别前先做 unpaper 去噪清洗扫描质量越差收益越大依赖 unpaper未装可省略--output-type pdfa输出 PDF/A 存档格式适合长期保存依赖 Ghostscript最后两个位置参数输入文件、输出文件跑完打开recipe.pdf页面看起来还是那张扫描图但文字可以框选、复制、搜索——文本层就压在图像底下。输入是图文混排文档的话加--mode skip跳过已有文本的页。OCRmyPDF 离线处理时的工作界面效率扩展批量与目录监听批量处理一个目录最朴素的方式是一行循环给每个 PDF 生成ocr_前缀副本。for f in *.pdf; do ocrmypdf --language eng $f ocr_$f; done仓库还带了现成批量脚本 misc/batch.py递归查找目录中的 PDF 并逐个处理复制一份按需改目录参数即可。目录监听自动化用 misc/watcher.py新放进目录的 PDF 自动走一遍 OCR。它依赖额外组件在线装一次pip install ocrmypdf[watcher]离线机上照常运行。备料完成后OCRmyPDF 在断网机器上就是一台自给自足的扫描文档加工站。各系统安装细节见 安装文档支持的语言与语言包获取方式见 语言支持文档。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考