☰
扫描件自动归档全攻略:OCRmyPDF 识别分类实战 3 步落地
2026/10/16 17:38:28 网站建设 项目流程

扫描件自动归档全攻略:OCRmyPDF 识别分类实战 3 步落地

【免费下载链接】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,到底卡在哪

纸质单据数字化后,文件只剩图像、没有文字层:全文检索失效,只能翻到具体页面才能确认内容是什么。文件一多,归档全靠人肉。

破局思路只有一句话:先让 OCRmyPDF 用 Tesseract 识别出文字(Tesseract 是开源 OCR 引擎,负责"认字"),再让脚本按关键词把文件搬进对应目录。识别与归档彻底解耦,各管一段。

一条命令完成 OCR

先装工具:

git clone https://gitcode.com/GitHub_Trending/oc/OCRmyPDF cd OCRmyPDF && pip install .

然后处理单个文件,输出就是带文字层的可搜索 PDF:

  • ocrmypdf 扫描.pdf 成品.pdf是最小用法
  • 加--deskew、--rotate-pages可先校正倾斜与旋转,识别更稳
  • 多语种混排时用--language chi_sim+eng指定识别语言

按关键词自动分文件夹

归档脚本很短,核心就是一个re.search判断加一次shutil.move:

import re, shutil, pathlib def classify(text): if re.search(r"发票|INVOICE", text, re.I): return "invoices" if re.search(r"合同|CONTRACT", text, re.I): return "contracts" if re.search(r"报告|REPORT", text, re.I): return "reports" return "other"

流程是:OCR 后的 PDF 用 pikepdf 或 PyMuPDF 抽出文字 → 交给classify判定 → 移动到根目录/类别/。注意把"发票"这类强信号词放在最前,避免长文档被泛化词抢先命中。

目录监听实现无人值守

🗂 仓库自带两件现成工具:

  • 目录监听脚本:盯着一个文件夹,新 PDF 落进去就自动跑 OCR,支持成功后删除或归档原件
  • 批量处理脚本:递归扫整个历史目录,一次性补齐存量扫描件

监听命令形如python3 misc/watcher.py ~/inbox ~/archive,配合分类逻辑就是完整的流水线。需要嵌入自有系统时,也可直接调用 API 入口 的ocrmypdf.ocr()。

常见坑与调优建议

  • 模糊低清扫描件:先--clean或--clean-final,识别率立竿见影
  • 中文文档忘设--language会导致大量误识,规则匹配随之失准
  • 重名覆盖风险:watcher 的--on-success-archive能把原件转入备份目录
  • 分类别急着上 NLP:先跑两周关键词规则,拿误分样本反哺正则表达式,性价比最高

今晚就能跑通的第一条命令:ocrmypdf 扫描.pdf 成品.pdf—— 文字层在手,归档脚本随你加。

【免费下载链接】OCRmyPDFOCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询