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 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);

Parameters

PageHet paginanummer, beginnend bij 1
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) of PDF_STRUCTURED_TEXT_CSV (2)
OptionsNul 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