简介:针对扫描件PDF文件名杂乱、内容不可检索的问题,本文系统讲解如何基于OCR技术识别PDF中的中文内容,并依据识别结果完成批量重命名与结构化表格导出。内容覆盖模式选择、识别区域设定、批量导入、命名规则设计、冲突处理与工程化落地等关键环节,并附通用示例代码,帮助读者构建一套可长期复用的文档自动化处理流程。
在企业日常的档案数字化场景中,大量纸质单据、合同、病历、票据经扫描后生成的是图片型PDF。这类文件有两个共同痛点:
工程上的解决思路是:用OCR把页面固定区域中的关键文字(如单号、姓名、日期、编号)提取出来,再以这些字段按统一模板重写文件名;如果还需要统计分析,则同步把字段写入结构化表格。整个过程可完全自动化,一次配置、长期复用。
先区分两类PDF:
OCR处理链路通常包含以下环节:
中文识别的难点主要在于字符集庞大、版式多样、印刷与手写混排、印章与表格线干扰。区域框选法之所以有效,是因为它把”整页自由识别”收敛为”小范围定字段识别”,干扰大幅减少,准确率与速度都会明显改善。
以下流程对PDF与图片文件均适用,仅识别模式不同。
第1步:选择处理模式
启动批处理工具后,先根据对象类型切换识别模式:处理扫描件PDF选择PDF识别模式;处理照片、截图等图片文件则切换到图片识别模式。模式决定解码与预处理策略,选错模式会明显拉低识别质量。
第2步:用样本文件框选识别区域
取一份有代表性的样本文件拖入界面,用区域选择工具在页面上框出需要识别的字段区域(如”编号””姓名””日期”各框一个区域),逐个保存,工具会记录每个区域的相对坐标。实践要点:
第3步:批量导入待处理文件
通过”导入”功能选中存放待处理文件的文件夹,工具会自动扫描并列出全部文件。导入前应做一次目录清理:待处理目录只保留目标类型文件,避免无关文件被误处理;必要时按版式分目录,一个目录对应一套区域模板。
第4步:选择执行功能
第5步:执行与抽查校验
点击”开始处理”后,工具按区域配置逐个文件识别、改名,界面以进度条展示整体进展。批量任务结束后不要直接交付,先抽查:对照”原名-新名”映射表核验若干条记录,重点检查置信度偏低的条目,确认无误后再进入下游流程。
命名规则建议模板化,例如 {日期}_{单号}_{姓名}。落地时必须处理三件事:
\ / : * ? " < > |)需先清洗;下面给出通用的Python流程骨架(OCR调用以任意识别引擎替代,函数签名仅为示意):
import refrom pathlib import Pathdef sanitize(name: str) -> str:"""清洗文件名非法字符,并限制长度"""return re.sub(r'[\\/:*?"<>|\r\n\t]', '_', name).strip()[:80]def build_new_name(fields: dict, template: str) -> str:"""按模板填充识别字段,如 '{日期}_{单号}_{姓名}'"""for key, value in fields.items():template = template.replace("{" + key + "}", str(value).strip())return sanitize(template)def process_folder(folder: Path, template: str, regions: dict):rows = []for pdf in folder.glob("*.pdf"):pages = render_pages(pdf, dpi=300) # 逐页渲染为图像raw = ocr_regions(pages, regions) # 按区域坐标做OCRfields = postprocess(raw) # 清洗、校验、格式化new = build_new_name(fields, template)final = resolve_conflict(folder, new, pdf.suffix) # 重名加序号pdf.rename(pdf.with_name(final + pdf.suffix))rows.append({"旧文件名": pdf.name, "新文件名": final, **fields})export_csv(rows, "rename_result.csv") # 导出对照与统计表
若不想自建OCR能力,也可以调用云端的通用文字识别服务完成识别环节,例如百度智能云的文字识别等通用云服务,其余本地流程保持不变;自建与云服务的选择主要取决于数据合规要求与调用量。
把”打开PDF—看内容—手动改名”这类重复劳动收敛为”区域模板+批量识别+规则改名”的自动化链路,核心价值不只在节省时间,更在于让文件名成为可检索、可统计的结构化数据入口。先把样本与区域模板定准,再把命名规则、冲突策略、复核机制补齐,整套方案即可在档案数字化、票据归档、病历整理等场景中长期稳定运行。