能在屏幕上看到文字,不代表文件里有一份可以正确读取的文本。
先看页面里到底有什么
PDF 是页面容器。文字、扫描图像、矢量对象、表格和字体编码可能同时存在,而且每页的情况都不同。用一种方式处理整份文件,容易漏掉内容。
可复制的文字页
优先读取文字层和位置信息,通常不需要 OCR。
扫描页
内容是图像,需要渲染后识别。清晰度、方向和噪声会影响结果。
混合页
正文能读取,但图表、批注或局部扫描区域可能仍需视觉处理。
编码异常页
页面看起来正常,复制出来却乱码或缺字。不能仅凭存在文字层就判定成功。
逐页选择解析方式
先建立页面清单,记录文字量、图像占比、字体、尺寸与可读性。可读文字足够时走原生解析,缺少文字层或文字不可读时再使用 OCR。
混合页面可以保留已有正文,只补充识别局部图像。已经读对的文字没必要再识别一遍,失败页也不需要拖着整份文件重新处理。
把结果整理成同一种结构
原生解析与 OCR 返回的数据不同。直接把两种结果塞进知识库,会把坐标、段落边界和错误一起带给后续步骤。
来源
保存文件、页码、内容哈希和解析版本,便于查找、更新与去重。
正文结构
区分标题、段落、列表、表格和图注。重复页眉、页脚也要单独识别。
位置与状态
保留页面内的位置,并记录成功、部分成功或失败,让回答能够回到原件核对。
检查文字,再建索引
提取程序正常退出,不等于内容可用。建索引前应检查空白、乱码、异常重复、页面遗漏,以及关键表格是否完整。
失败需要落到具体页码。能恢复的页面单独重试;只恢复了一部分的文档,要标出可用范围。否则用户看到一份完整的检索结果,很难意识到中间丢了内容。
检查清单
- 确认原件可以打开,密码和读取权限已明确。
- 抽查文字页、扫描页和混合页是否选对处理方式。
- 核对页码、标题、表格和关键数字。
- 检查失败页面是否单独记录,可用范围是否明确。
- 确认检索片段可以回到文件与原始页码。