ExtractStructuredPage

Text, Extraktion, Strukturierte Daten

Beschreibung

Erfasst eine PDF-Seite und serialisiert ihr strukturiertes Textmodell als JSON in Schema 2, als semantisches XHTML oder als Tabellen-CSV

Das Modell kombiniert echte Strukturbaum-Reihenfolge und -Attribute mit explizitem geometrischem Ausweichmodus, Absätzen, formatierten Bereichen und Tabellen mit leeren oder verbundenen Zellen

Syntax

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

Parameter

PageDie einsbasierte Seitennummer
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) oder PDF_STRUCTURED_TEXT_CSV (2)
OptionsNull oder PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1), um Schrift, Größe, Farbe und vertikale Ausrichtung in JSON und XHTML einzuschließen

JSON-Hierarchie

{
  "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": []
}

Seitenmetadaten umfassen readingOrderSource, structureComplete und warnings; Lesequellen sind tagged, mixed, geometric oder geometric-columns

Blöcke umfassen nodeId, source, confidence, furniture, furnitureSource und bbox; Bereiche behalten originalText, contentEvent, nodeId und artifact neben dem Ausgabetext bei

Tabellenmetadaten umfassen logicalTable, logicalTableId, fragment und Fortsetzungsflags; Zeilen tragen logicalRow und repeatedHeader

Jede Zelle zeichnet rowSpan, columnSpan, anchorRow, anchorColumn, covered, header, mergeSource und confidence auf; leere getaggte Zellen bleiben erhalten, und unbekannte Zellgrenzen sind null

Das semantics-Array bewahrt die geordneten Begin-, Inhalts- und Endereignisse des vollständigen Baums, stabile Knoten- und Eltern-IDs, aufgelöste und rohe Rollen, Namespaces, Sprache, alternativen Text, ActualText-Präsenz, Zellattribute sowie Seiten-, Strom-, MCID- oder Objektreferenzen

structureComplete beschreibt Traversierung und Abdeckung der Inhaltsbindung; es ist keine Tagging- oder Barrierefreiheits-Zertifizierung

Rückgabewerte

JSON und XHTML geben vollständige eigenständige Dokumente zurück; XHTML stellt verbundene Zellen mit Tabellenspannen dar und legt Blockquellen-Metadaten offen

CSV gibt nur Tabellenzellen zurück und ist leer, wenn die Seite keine Tabelle enthält; verbundene Zellen legen den Text in der Ankerzelle ab und lassen überdeckte Zellen leer

Eine ungültige Anforderung oder ein Extraktionsfehler gibt eine leere Zeichenfolge zurück

Anmerkungen

Die Analyse verwendet SetStructuredTextOptions unabhängig von den formatspezifischen Options; prüfen Sie GetLastStructuredTextDiagnostics für Lesequellen und Ausweichwarnungen

Die echte Tag-Baum-Reihenfolge hat Vorrang, wenn Inhaltsbindungen vollständig sind; ungelöster oder mehrdeutiger Inhalt behält extrahierten Text im gemischten oder geometrischen Ausweichmodus, und unbekannte benutzerdefinierte Rollen werden nicht aus ihren Namen geraten

Marked-Content-Bindungen unterscheiden Seitenströme und verschachtelte Form-XObject-Aufrufwege; gemeinsame getaggte Form-Vorkommen mit mehrdeutiger semantischer Reihenfolge werden offengelegt, statt eine erdachte Reihenfolge zuzuweisen

ActualText-Ersätze bewahren den Quelltext in JSON-Bereichen; Objektreferenzen bleiben als semantische Metadaten erhalten, ohne Annotationstext aus ihnen zu extrahieren

Die geometrische Tabellenerkennung verlangt ausgerichtete Zeilen mit mehreren Zellen; optionale Verbindungsableitung und Spaltenerkennung bleiben Heuristiken

Begrenzungsrahmen verwenden Seitenkoordinaten mit dem Ursprung oben links in PDF-Punkten; ein Fragment kann seine vollständigen Quelltextlauf-Grenzen behalten

Die Extraktion bewahrt die ausgewählte Seite und den offenen Writer-Tag-Stapel; aktuelle nicht gespeicherte Writer-Tags werden ohne schließende Tags und ohne Finalisieren des Dokuments einbezogen

DLL-Rückgabezeiger bleiben bis zum nächsten Zeichenfolgen zurückgebenden Aufruf für dieselbe Instanz gültig

LastErrorCode ist 111 bei ungültiger Seite, ungültigem Format oder ungültigen Optionen und 515, wenn die Extraktion fehlschlägt

Siehe auch

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText