ExtractStructuredPage
Tekst, extractie, gestructureerde gegevens
Beschrijving
Legt één PDF-pagina vast en serialiseert haar gestructureerde tekstmodel als schema-2-JSON, semantische XHTML of tabel-CSV
Het model combineert echte structuurboom-volgorde en -attributen met expliciete geometrische fallback, alinea's, opgemaakte spans en tabellen met lege of samengevoegde cellen
Syntaxis
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);Parameters
| Page | Het paginanummer, beginnend bij 1 |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) of PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Nul of PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) om font, grootte, kleur en verticale uitlijning in JSON en XHTML op te nemen |
JSON-hiërarchie
{
"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": []
}Paginametadata bevat readingOrderSource, structureComplete en warnings; leesbronnen zijn tagged, mixed, geometric of geometric-columns
Blokken bevatten nodeId, source, confidence, furniture, furnitureSource en bbox; spans houden originalText, contentEvent, nodeId en artifact vast naast de uitvoertekst
Tabelmetadata bevat logicalTable, logicalTableId, fragment en vervolgvlaggen; rijen dragen logicalRow en repeatedHeader
Elke cel legt rowSpan, columnSpan, anchorRow, anchorColumn, covered, header, mergeSource en confidence vast; lege getagde cellen blijven behouden en onbekende celgrenzen zijn null
De semantics-array bewaart de geordende begin-, content- en end-events van de volledige boom, stabiele node- en ouder-ID's, opgeloste en ruwe rollen, naamruimten, taal, alternatieve tekst, aanwezigheid van ActualText, celattributen en verwijzingen naar pagina, stream, MCID of object
structureComplete beschrijft de dekking van doorkruising en contentbinding; het is geen tagging- of toegankelijkheidscertificering
Retourwaarden
JSON en XHTML geven volledige zelfstandige documenten terug; XHTML representeert samengevoegde cellen met tabel-spans en legt blokbronmetadata bloot
CSV geeft uitsluitend tabelcellen terug en is leeg wanneer de pagina geen tabel heeft; samengevoegde cellen zetten de tekst in de ankercel en laten overdekte cellen leeg
Een ongeldig verzoek of extractiefout geeft een lege string terug
Opmerkingen
De analyse gebruikt SetStructuredTextOptions onafhankelijk van de formaatspecifieke Options; bekijk GetLastStructuredTextDiagnostics voor leesbronnen en fallback-waarschuwingen
Echte tag-tree-volgorde gaat voor wanneer contentbindingen compleet zijn; onopgeloste of dubbelzinnige content behoudt geëxtraheerde tekst in mixed- of geometric-fallback, en onbekende aangepaste rollen worden niet uit hun namen afgeleid
Marked-content-bindingen onderscheiden pagina-streams en geneste Form XObject-aanroeproutes; gedeelde getagde Form-voorkomens met dubbelzinnige semantische volgorde worden gemeld in plaats van een verzonnen volgorde toegekend te krijgen
ActualText-vervangingen behouden brontekst in JSON-spans; objectverwijzingen worden als semantische metadata vastgehouden, zonder er annotatietekst uit te extraheren
Geometrische tabeldetectie vereist uitgelijnde rijen met meerdere cellen; optionele samenvoeginferentie en kolomdetectie blijven heuristiek
Bounding boxes gebruiken paginacoördinaten met linksboven als oorsprong in PDF-punten; een fragment kan zijn volledige brontekstrun-grenzen behouden
Extractie behoudt de geselecteerde pagina en de open writer-tagstack; huidige niet-opgeslagen writer-tags worden zonder sluitingstags meegenomen zonder het document af te ronden
DLL-teruggavepointers blijven geldig tot de volgende stringteruggavende aanroep op dezelfde instantie
LastErrorCode is 111 bij ongeldige pagina, formaat of opties en 515 wanneer extractie mislukt
Zie ook
ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText