ExtractStructuredPage

Testo, estrazione, dati strutturati

Descrizione

Esegue il rendering di una pagina in un modello di testo strutturato e lo serializza come JSON, XHTML o CSV

Il modello raggruppa il testo in paragrafi e tabelle rilevate, con righe e span con stile nei paragrafi e righe, celle e span nelle tabelle

Sintassi

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

Parametri

PageIl numero di pagina a base 1
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) o PDF_STRUCTURED_TEXT_CSV (2)
OptionsZero oppure PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) per includere font, dimensioni, colore e allineamento verticale in JSON e XHTML

Gerarchia JSON

{
  "version": 1,
  "page": 1,
  "width": 612,
  "height": 792,
  "blocks": [
    {"type": "paragraph", "bbox": [40, 50, 300, 70],
     "lines": [{"bbox": [40, 50, 300, 70], "spans": []}]},
    {"type": "table", "columns": 3, "rows": [[]]}
  ]
}

Valori restituiti

JSON e XHTML restituiscono documenti autonomi completi

CSV restituisce solo le tabelle rilevate ed è vuoto quando la pagina non contiene tabelle

Una richiesta non valida o un errore di estrazione restituisce una stringa vuota

Note

Il testo viene sottoposto a rendering una volta, quindi ogni formato viene prodotto dalla stessa gerarchia intermedia

Il rilevamento delle tabelle unisce i normali spazi tra parole all'interno di una cella e richiede righe multicella allineate, riducendo i falsi positivi dei paragrafi

I riquadri di delimitazione usano coordinate di pagina con origine in alto a sinistra e sono espressi in punti PDF

I puntatori restituiti dalla DLL restano validi fino alla successiva chiamata che restituisce una stringa sulla stessa istanza

LastErrorCode è 111 per pagina, formato o opzioni non validi e 515 quando l'estrazione non riesce

Vedere anche

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText