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

Parametrar

PageSidnumret, 1-baserat
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1), or PDF_STRUCTURED_TEXT_CSV (2)
OptionsNoll 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