必须先确认pdf为图像型并启用hi_res ocr策略,显式声明languages=["zh","en"]等参数,才能准确提取表格结构;否则dify会跳过ocr导致表格丢失。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从一张张扫描生成的PDF图片里,把关键表格数据准确抽出来,而不是让Dify把整页文字糊成一团再给你返回乱序段落。
确认PDF确实是图片型(非文本层)
右键PDF文件→属性→“详细信息”标签页,查看“页面数”下方是否标注“图像”或“扫描件”。更可靠的方式是用命令行执行:pdfinfo your_file.pdf | grep "Pages\|Image"。若输出含 【Image only】 或显示 contains no text,说明该PDF无文本层,必须走OCR路径;若误当成文本型PDF上传,Dify会跳过OCR直接切分,导致表格结构彻底丢失。
这一步跳过,后续所有配置都无效。
启用高精度OCR解析策略
进入Dify知识库创建页→展开「Document Processing」→将「Parsing strategy」设为【hi_res】。该选项强制调用unstructured的多模态布局分析引擎,能识别真实表格边界、标题层级与图文位置关系,而非简单按换行符暴力切分。
注意:若PDF含加密或数字签名,需先用qpdf --decrypt input.pdf output.pdf解密后再上传,否则hi_res策略会静默失败——不报错、不提示、也不解析。
手动注入语言与表格识别参数
点击「Custom rules」→在JSON编辑区添加以下字段:
{"languages": ["zh", "en"], "table_detection_threshold": 0.85, "max_page_size": 1}
其中languages字段必须显式声明中文,否则unstructured默认按英文空格切分,中文段落粘连率高达32%;table_detection_threshold提升至0.85可过滤低置信度误检框,避免把页眉、分割线识别成表格;max_page_size设为1确保逐页解析,防止跨页表格被强行拆开。
验证表格提取结果是否结构化
上传后等待处理完成→点击文档右侧「Preview」→切换到「Table」标签页。此处只显示被成功识别为表格的区域,每个表格以独立HTML表格形式呈现,且单元格行列结构完整。
若看到的是纯文本块、或表格被切成多段、或行列错位,说明未启用hi_res模式或未加languages参数——此时不要重传,直接修改知识库配置中的Custom rules并点击「Reprocess」即可触发重新解析,无需删除原文件。
这一步操作完成后,表格数据已作为结构化HTML嵌入文档chunk中,可直接用于后续工作流的字段抽取或SQL查询。










