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一份 200 页的扫描合同没有文本层CtrlF 搜不到条款只能逐页人眼翻找。用免费的 OCRmyPDF 跑一遍每页图像下被嵌入一层不可见文本关键词搜索从翻页变成秒级响应它默认多核并行处理优化后的输出文件经常比输入还小。本文从一条命令开始走到批量数字化和自动化集成。30 秒了解 OCRmyPDF一句话定位OCRmyPDF 是纯 Python 的命令行工具给扫描 PDF 叠加 OCR 文本层原图像不动新文本层可搜索、可复制。文本精确对齐到字符位置复制出来顺序不乱默认输出并校验 PDF/A专为长期存档设计基于 Tesseract支持 100 种语言多语言混排一条命令页面级任务默认分发给所有 CPU 核千页文件稳定可跑图像优化后输出体积常小于输入快速上手安装只展示一种方式pip install ocrmypdf还需两个外部依赖Tesseract 4.1.1 和 Ghostscript。装完执行ocrmypdf --version能打印版本即验证通过。最简命令只需要输入输出两个文件名ocrmypdf input_scan.pdf output_searchable.pdf跑完你会看到逐页进度条结尾一行提示输出文件已通过 PDF 校验。产物外观与原件一致但在任何阅读器里 CtrlF 都能命中关键词用选择工具划过文字选中的是识别出的字符而图像本身一个像素都没动。核心能力拆解多语言识别一条 -l 指定语言包OCRmyPDF 不自带语言包先给 Tesseract 装好对应语言再用-l传 ISO 代码ocrmypdf -l engchi_sim mixed_doc.pdf mixed_doc_out.pdfengchi_sim多语言用加号拼接一份文档同时识别语言包随系统安装如 Ubuntu 上apt install tesseract-ocr-chi-sim代码不确定时查 Tesseract 的 ISO 639-3 语言列表效果中英混排文档一次跑完文本层同时包含两种文字搜索任一侧都命中。图像修复识别前三个开关扫描件歪斜、噪点、方向错先修图再识别识别率会明显上升ocrmypdf --deskew --clean --rotate-pages skewed.pdf fixed.pdf--deskew自动检测并校正页面倾斜--clean用 unpaper 去除噪点--rotate-pages检测到文字侧放时旋转整页背景有污渍再加--remove-background注意预处理会改变图像像素。原始件必须保真的场景史料、证据材料关掉这些开关只叠加默认文本层。批量转换一条 find 扫完目录树几十上百个文件用并行批处理最省事find . -name *.pdf -print0 | parallel --tag -j 2 ocrmypdf {} {}parallel -j 2同时跑两个 ocrmypdf 进程每个进程自身已多核2 是常用平衡点--tag日志行前缀带文件名报错时直接定位到具体文件输入输出同名即原地更新失败不会覆盖原件这条配方来自官方文档的批处理章节 docs/batch.mdWindows 上则可用for /r %%f in (*.pdf) do ocrmypdf %%f %%f。场景配方长期存档合同、发票、无纸化档案ocrmypdf --deskew --output-type pdfa --optimize 3 scan.pdf archive.pdf先校正页面再按 0–3 中最激进的--optimize 3压缩输出 ISO 标准的 PDF/A归档场景下文件往往比原件更小。双语论文档案ocrmypdf -l engfra --force-ocr --jobs 4 bilingual.pdf bilingual_out.pdf--force-ocr让已有文本层的页面也被重新识别适合原件带着劣质旧文本层、想整体替换的情况--jobs 4显式固定并发核数方便在共享机器上控制负载。引擎室核心处理链路分五步校验输入并自动修复 PDF用 pikepdf 解析页面图像与既有文本Ghostscript 把每页栅格化为 PNG保留原始分辨率可选预处理deskew、clean、rotate 依次作用于页面图像Tesseract 识别文字生成带坐标信息的 hOCR 中间格式文本层三明治嵌入到图像下方压缩后输出 PDF/A并对产物做最终校验整条流水线实现在 src/ocrmypdf/_pipelines/页级并发由--jobs调度。问题速查提示找不到 Tesseract 语言数据语言包没装。Ubuntu 执行apt install tesseract-ocr-fra换成你的语言代码再重跑即可。说文件已有文本层就跳过了默认行为。加--force-ocr强制重新识别并替换旧文本层。150dpi 的扫描件识别很差原始分辨率不够加--oversample 600先按 600dpi 重新栅格化再识别取值范围 0–5000。大文件处理太慢确认--jobs吃满核心多个文件用parallel -j 2并行单进程内部已是页级多核别再叠进程数。输出比输入还大默认--optimize 1偏保守。存档用途改--optimize 3重跑体积通常明显下降。横向一瞥维度OCRmyPDFTesseract 原生在线 OCR 服务文本层对齐可复制精确对齐需自行开发视产品而定PDF/A 输出与校验内置无无批量 / 监听自动化parallel watcher自行写脚本无费用免费MPL-2.0免费免费额度受限两者并非竞争关系OCRmyPDF 把 Tesseract 当作识别引擎承担的是 PDF 这一端的修复、嵌入、优化与校验工作。从单次用到集成嵌入 Python 系统时用高层函数ocrmypdf.ocrfrom ocrmypdf import ocr, OcrOptions ocr(OcrOptions(input_filein.pdf, output_fileout.pdf, languages[eng]))实现见 src/ocrmypdf/api.py。要免手工干预用仓库自带的 misc/watcher.py设OCR_INPUT_DIRECTORY与OCR_OUTPUT_DIRECTORY环境变量文件落入监控目录即自动处理处理完还可归档原件。插件扩展如更换 OCR 引擎见 docs/plugins.md。收束扫描件不再是死档一条命令换回可搜索、可存档的 PDF/A。装好它把那堆压了半年的扫描目录跑一遍。【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻