Skip to content

表格识别

概述

表格识别是一个独立的 AI 阶段,用于在版面分析检测到表格区域之后,进一步还原表格的内部结构 —— 行、列、合并单元格以及单元格边界,从而让转换结果保留原始的表格语义,而不是仅得到一片散乱的文本片段。

该能力由独立选项 EnableAITableRecognition 控制,默认开启。仅当版面分析报告的表格区域置信度低于可信阈值时才会调用表格模型;置信度较高的原生 PDF 表格会跳过模型,以节省推理耗时。

适合使用表格识别的典型场景:

  • 无边框或部分边框的表格:仅靠表格线无法还原结构。
  • 包含合并表头、多行表头或跨行/跨列单元格的表格:例如财务报表、检验报告、发票等。
  • 经 OCR 处理的扫描表格:在抽取单元格内容前需要先做几何结构还原。

支持表格识别的功能:

  • PDF 转 Word
  • PDF 转 Excel
  • PDF 转 PPT
  • PDF 转 HTML
  • PDF 转 RTF
  • PDF 转 CSV
  • PDF 转 Json
  • PDF 转 Markdown

注意事项

  • 表格识别仅在版面分析启用时生效(即 EnableAILayout 为 true,或开启了 EnableOCR 时隐式启用)。
  • 使用表格识别前需要先加载 DocumentAI 模型,通过《使用自定义 AI 模型回调》章节中的回调接入您自己的表格模型。
  • EnableAITableRecognition 设置为 false 会完全关闭表格模型,已检测到的表格区域将退化为基于页面对象的几何重建。

示例

下例演示如何在开启表格识别的情况下把 PDF 转换为 Word 文档。

go
compdf.SetDocumentAIModel("path/documentai.model", -1)

wordOptions := compdf.NewWordOptions()
wordOptions.EnableAILayout = true
wordOptions.EnableAITableRecognition = true // enabled by default in 4.1
err := compdf.StartPDFToWord("input.pdf", "password", "path/output.docx", wordOptions, nil)