ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OCRmyPDF 快速上手:给扫描版 PDF 添加可搜索文字层的完整指南

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/OCRmyPDF你有没有打开一份扫描件想 CtrlF 搜一个词、或复制一段文字却发现什么都选不中扫描版 PDF 本质上是逐页图片没有文字层搜索和复制全部失效。OCRmyPDF 正是为解决这个问题而生的命令行工具它给扫描版 PDF 添加一层 OCR 识别的文字让文件变得可搜索、可复制同时尽量保持原版式不动。OCRmyPDF 终端运行实录8 页并发扫描 → OCR → PDF/A 转换 → 图像压缩最终输出文件比输入小了 53.8%30 秒认识 OCRmyPDF 能做什么一句话输入一个扫描版 PDF或图片输出一个文字可被选中的 PDF/A 文件。它值得上手的原因很具体文字层精准贴合识别出的文字被放在对应图像的精确位置下方复制出来的顺序就是阅读顺序不会出现复制一段乱序碎片的情况原文不动只要 PDF 允许OCR 信息以无损方式插入不改动原有内容原始嵌入图像的分辨率也原样保留输出更小是常态处理过程中会顺带压缩图像很多文件的输出比输入还小多核并行默认把页级任务分发到所有 CPU 核心几十页的文档处理速度可观识别引擎成熟基于 Tesseract支持 100 多种语言处理全程在本机完成文件不出机器它也有明确的边界依赖 Tesseract 和 Ghostscript 两个外部程序已有文字层的页面默认会被跳过详见排坑部分。三步完成安装Linux、Windows、容器各一条路三条路径的共同点是装好依赖后跑ocrmypdf --version确认命令可用即可。LinuxDebian/Ubuntu 及衍生版一条命令带齐依赖apt install ocrmypdfFedora 系统则是dnf install ocrmypdf tesseract-osd。Windows需要 64 位版本的 Python、Tesseract、Ghostscript 三件套。用 winget 可以先装前两个winget install -e --id Python.Python.3.12 winget install -e --id UB-Mannheim.TesseractOCRGhostscript 需从官网下载安装包它已不支持静默安装。装完后执行py -m pip install ocrmypdf之后用py -m ocrmypdf启动。如果嫌麻烦用 Windows 自带的 WSL 跑上面的 Linux 命令是最省事的。容器官方镜像已打包好全部依赖x86_64 和 ARM 都支持docker run --rm -v /path/to/pdfs:/data jbarlow83/ocrmypdf-alpine /data/input.pdf /data/output.pdf参数怎么选常用开关与提速技巧一张表参数不必死记ocrmypdf --help有完整说明。下面是实际使用中出现频率最高的一批开关作用什么时候用-l engchi_sim指定识别语言可组合多种中文文档必加多语言混排用连写--deskew自动校正歪斜的页面扫描件倾斜时先校正再识别效果提升明显--rotate-pages修正旋转 90°/180° 的页面扫描方向装反的文档--skip-text跳过已有文字的页面混合文档只对纯图片页做 OCR--force-ocr强制整页重新识别原有文字层质量差要推倒重来-O 0~3优化级别0 最保守 3 最激进想进一步压体积时调高默认 1--jobs N限制并行任务数服务器环境给其他进程留资源--pages 1-10只处理指定页码大文件分段处理或先试跑几页几个能直接复用的经验先试跑再全量。对一份 200 页的文件先用--pages 1-5验证语言参数和版式效果再决定是否整本处理批量用 GNU Parallel。两条工具都会自动吃满 CPU用-j 2让并行各管一层互不打架parallel --tag -j 2 ocrmypdf -l engchi_sim {} output/{} ::: *.pdf递归目录就地处理一条 find 搞定find . -name *.pdf -exec ocrmypdf {} {} \;调--optimize 3前想清楚0/1 档是无损压缩2/3 档会做有损优化。归档场景建议 1分享场景可以用 3一份典型的扫描件输入纯图片页面处理后才能搜索与复制识别率不高的 3 个自查项现象 1报错找不到语言数据文件language data file。原因只装了 Tesseract 主程序语言包没装或者用了精简安装的 Tesseract缺configs/目录会连带报cannot open its config file hocr。 解法Debian/Ubuntu 上apt-cache search tesseract-ocr找到对应语言包安装如tesseract-ocr-chi-sim精简安装则从一个完整安装里把tessdata/和configs/目录拷过去。现象 2提示页面已有文字被跳过。原因--skip-text默认行为之一会跳过检测到文字层的页面混合文档里纯图片页之外的页面都不动。 解法确认这些页确实不需要 OCR若旧文字层质量差想重做加--force-ocr强制重扫。现象 3输出文件比输入还大或体积不符合预期。原因默认优化级别是 1仅无损压缩力度有限。 解法调高-O级别试 2 或 3对比体积和清晰度再定。另外部分发行版如 Debian/Ubuntu 官方源的 ocrmypdf 不带 JBIG2 编码器黑白文档会偏大自行编译 jbig2enc 装上 PATH 后会被自动检测到。还有一个容易被忽略的自查项图像本身。模糊、倾斜、低分辨率的扫描件任何引擎的识别率都会打折——先加--deskew --clean预处理往往比换引擎有效得多。适合谁以及往哪走OCRmyPDF 适合三类人做档案数字化和无纸化办公、需要长期可搜索文档的人需要把 OCR 步骤写进脚本或定时任务的运维/开发人员以及不想把敏感文件上传给任何在线服务的用户——整个流程在本机完成。它的边界也同样清晰识别上限取决于 Tesseract 和输入图像质量复杂版式的手动修复它帮不了你。随着多语言识别包持续扩充和插件生态成熟把它接进更大的文档流水线只会更顺。装好之后不妨拿一份最头疼的扫描件先跑--pages 1-5效果自己看。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表