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 StringDLL
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 开始的页码 |
|---|---|
| Format | PDF_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