ExtractStructuredPage
Text, extrahering, strukturerade data
Beskrivning
Fångar en PDF-sida och serialiserar dess strukturerade textmodell som schema 2-JSON, semantisk XHTML eller tabell-CSV
Modellen kombinerar verklig strukturträdsordning och attribut med uttrycklig geometrisk fallback, stycken, formaterade spänner och tabeller med tomma eller sammanslagna celler
Syntax
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);Parametrar
| Page | Sidnumret, 1-baserat |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1), or PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Noll eller PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) för att inkludera teckensnitt, storlek, färg och vertikal justering i JSON och XHTML |
JSON-hierarki
{
"version": 2,
"page": 1,
"width": 612,
"height": 792,
"readingOrderSource": "tagged",
"structureComplete": true,
"warnings": [],
"blocks": [
{
"type": "paragraph",
"nodeId": 3,
"source": "tagged",
"confidence": 1,
"furniture": "none",
"furnitureSource": "",
"bbox": [
40,
50,
300,
70
],
"text": "Example paragraph",
"lines": [
{
"spans": []
}
]
}
],
"semantics": []
}Sidmetadata omfattar readingOrderSource, structureComplete och warnings; läskällor är tagged, mixed, geometric eller geometric-columns
Block omfattar nodeId, source, confidence, furniture, furnitureSource och bbox; spänner behåller originalText, contentEvent, nodeId och artifact bredvid utdatatexten
Tabellmetadata omfattar logicalTable, logicalTableId, fragment och fortsättningsflaggor; rader bär logicalRow och repeatedHeader
Varje cell lagrar rowSpan, columnSpan, anchorRow, anchorColumn, covered, header, mergeSource och confidence; tomma taggade celler behålls och okända cellgränser är null
semantics-arrayen bevarar de ordnade begin-, content- och end-händelserna för hela trädet, stabila nod- och föräldra-ID:n, upplösta och råa roller, namnrymder, språk, alternativ text, ActualText-förekomst, cellattribut samt sid-, ström-, MCID- eller objektreferenser
structureComplete beskriver täckningen av traversering och innehållsbindning; det är ingen taggnings- eller tillgänglighetscertifiering
Returvärden
JSON och XHTML returnerar kompletta fristående dokument; XHTML representerar sammanslagna celler med tabellspan och exponerar blockkällmetadata
CSV returnerar bara tabellceller och är tomt när sidan saknar tabell; sammanslagna celler lägger texten i ankarcellen och lämnar övertäckta celler tomma
En ogiltig begäran eller misslyckad extraktion returnerar en tom sträng
Anmärkningar
Analysen använder SetStructuredTextOptions oberoende av formatspecifika Options; granska GetLastStructuredTextDiagnostics för läskällor och fallback-varningar
Verklig taggträdsordning har företräde när innehållsbindningarna är kompletta; olöst eller tvetydigt innehåll behåller extraherad text i mixed- eller geometric-fallback, och okända anpassade roller gissas inte utifrån sina namn
Marked-content-bindningar skiljer sidströmmar och nästlade Form XObject-anropsrutter; delade taggade Form-förekomster med tvetydig semantisk ordning redovisas i stället för att tilldelas påhittad ordning
ActualText-ersättningar bevarar källtexten i JSON-spänner; objektreferenser behålls som semantisk metadata, utan att anteckningstext extraheras ur dem
Geometrisk tabellupptäckt kräver justerade flercellsrader; valfri sammanslagningsinferens och kolumndetektering förblir heuristiker
Bounding boxes använder sidkoordinater med origo uppe till vänster i PDF-punkter; ett fragment kan behålla hela sin källa textkörningsgräns
Extraktionen bevarar den valda sidan och skribentens öppna taggstack; aktuella osparade skrivartaggar inkluderas utan att stänga taggar eller färdigställa dokumentet
DLL-returpekare förblir giltiga till nästa strängreturnerande anrop på samma instans
LastErrorCode är 111 för ogiltig sida, format eller options och 515 när extraktion misslyckas
Se även
ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText