ExtractStructuredPage

Текст, извличане, структурирани данни

Описание

Визуализира една страница в структуриран текстов модел и го сериализира като JSON, XHTML или CSV

Моделът групира текста в абзаци и открити таблици, като под абзаците има редове и стилизирани диапазони, а под таблиците — редове, клетки и диапазони

Синтаксис

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

Параметри

PageЕднобазираният номер на страницата
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) или PDF_STRUCTURED_TEXT_CSV (2)
OptionsНула или PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1), за да включи шрифта, размера, цвета и вертикалното подравняване в JSON и XHTML

Йерархия на 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": [[]]}
  ]
}

Върнати стойности

JSON и XHTML връщат пълни самостоятелни документи

CSV връща само откритите таблици и е празен, когато страницата няма таблица

Невалидна заявка или неуспешно извличане връща празен низ

Забележки

Текстът се рендира веднъж, след което всеки формат се създава от една и съща междинна йерархия

Разпознаването на таблици обединява обичайните разстояния между думи в клетка и изисква подравнени редове с няколко клетки, като намалява фалшивите положителни резултати за абзаци

Ограничаващите полета използват координати на страницата с начало горе вляво и се изразяват в PDF точки

Указателите, върнати от DLL, остават валидни до следващото извикване, връщащо низ, на същия екземпляр

LastErrorCode е 111 при невалидна страница, формат или опции и 515, когато извличането е неуспешно

Вижте също

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText