ExtractStructuredPage

分类:文本、提取、结构化数据

描述

将一个页面渲染为结构化文本模型,并序列化为 JSON、XHTML 或 CSV

该模型将文本划分为段落和检测到的表格,段落下包含行和带样式的跨度,表格下包含行、单元格和跨度

语法

Delphi

Function TPDFlib.ExtractStructuredPage(Page, Format,
  Options: Integer): WideString;

ActiveX

Function PDFlib::ExtractStructuredPage(Page As Long, Format As Long,
  Options As Long) As String

DLL

const wchar_t* DLExtractStructuredPage(int InstanceID, int Page,
  int Format, int Options);
const char* DLExtractStructuredPageA(int InstanceID, int Page,
  int Format, int Options);

参数

Page从 1 开始的页码
FormatPDF_STRUCTURED_TEXT_JSON (0)、PDF_STRUCTURED_TEXT_XHTML (1) 或 PDF_STRUCTURED_TEXT_CSV (2)
Options使用零或 PDF_STRUCTURED_TEXT_INCLUDE_STYLES(1),以在 JSON 和 XHTML 中包含字体、大小、颜色和垂直对齐

JSON 层级

{
  "version": 1,
  "page": 1,
  "width": 612,
  "height": 792,
  "blocks": [
    {"type": "paragraph", "bbox": [40, 50, 300, 70],
     "lines": [{"bbox": [40, 50, 300, 70], "spans": []}]},
    {"type": "table", "columns": 3, "rows": [[]]}
  ]
}

返回值

JSON 和 XHTML 返回完整的独立文档

CSV 仅返回检测到的表,页面不含表时为空

请求无效或提取失败时返回空字符串

备注

文本仅渲染一次,随后从相同的中间层级结构生成每种格式

表格检测会合并单元格内的正常词间距,并要求多单元格行对齐,从而减少将段落误判为表格的情况

边界框使用页面左上角坐标,并以 PDF 点表示

DLL 返回指针在同一实例的下一次字符串返回调用前始终有效

页面、格式或选项无效时 LastErrorCode 为 111,提取失败时为 515

另请参阅

ExtractStructuredDocument、ExtractPageTextBlocks、GetPageText