ExtractStructuredPage

Text, extraction, structured data

Descriere

Randează o pagină într-un model textual structurat și îl serializează ca JSON, XHTML sau CSV

Modelul grupează textul în paragrafe și tabele detectate, cu linii și secvențe stilizate sub paragrafe, și rânduri, celule și secvențe sub tabele

Sintaxă

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

PageNumărul paginii, numerotat de la 1
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) sau PDF_STRUCTURED_TEXT_CSV (2)
OptionsZero sau PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) pentru a include fontul, dimensiunea, culoarea și alinierea verticală în JSON și XHTML

JSON hierarchy

{
  "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 returnate

JSON and XHTML return complete standalone documents

CSV returnează doar tabelele detectate și este gol când pagina nu are tabel O cerere invalidă sau un eșec de extragere returnează un șir gol

Remarks

Textul este randat o singură dată, apoi fiecare format este produs din aceeași ierarhie intermediară Detectarea tabelelor combină spațiile normale dintre cuvinte în interiorul unei celule și cere rânduri multi-celulă aliniate, reducând falsurile de paragraf

Bounding box-urile folosesc coordonate de pagină din stânga sus și sunt exprimate în puncte PDF Pointer-ele de retur DLL rămân valide până la următorul apel care returnează un șir, pe aceeași instanță

LastErrorCode este 111 pentru pagină, format sau opțiuni invalide și 515 când extragerea eșuează

Vedeți și

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText