ExtractStructuredDocument

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

Описание

Захватывает выбранный диапазон страниц, анализирует страницы вместе и возвращает один JSON-документ схемы 2, один семантический XHTML-документ или согласованные таблицы CSV

Синтаксис

Delphi

Function TPDFlib.ExtractStructuredDocument(Const PageRange: WideString;
  Format, Options: Integer): WideString;

ActiveX

Function PDFlib::ExtractStructuredDocument(PageRange As String,
  Format As Long, Options As Long) As String

DLL

const wchar_t* DLExtractStructuredDocument(int InstanceID,
  const wchar_t* PageRange, int Format, int Options);
const char* DLExtractStructuredDocumentA(int InstanceID,
  const char* PageRange, int Format, int Options);

Параметры

PageRangeДиапазон страниц с нумерацией от 1, например 1-3,7, или пустая строка для всех страниц
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) или PDF_STRUCTURED_TEXT_CSV (2)
OptionsZero or PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1)

Возвращаемые значения

JSON содержит version: 2 и массив pages по схеме, документированной в ExtractStructuredPage; стабильные идентификаторы семантических узлов действуют между страницами

XHTML объединяет семантическое содержимое, причём соединённые фрагменты таблиц остаются внутри одной таблицы, а не требуют по section на страницу

CSV содержит только таблицы и пуст, когда ни одна выбранная страница их не имеет; продолженные логические таблицы используют один заголовок таблицы и опускают опознанные повторяющиеся строки заголовков

Некорректный диапазон, формат или опция и любой сбой извлечения возвращают пустую строку

Примечания

Анализ использует SetStructuredTextOptions независимо от специфичных для формата Options; источники чтения и предупреждения о резервных путях смотрите в GetLastStructuredTextDiagnostics

Когда привязки содержимого полны, приоритет имеет реальный порядок дерева тегов; неразрешённое или неоднозначное содержимое удерживает извлечённый текст в mixed- или geometric-резерве, а неизвестные пользовательские роли не угадываются по их именам

Межстраничный анализ опознаёт повторяющиеся служебные элементы у полей и совместимые продолжения таблиц; флаги по умолчанию опознают служебные элементы, сохраняя их текст

Тегированные ячейки сохраняют пустое содержимое и явные охваты строк и колонок; некорректные или перекрывающиеся сетки таблиц уходят в резерв, сохраняя извлечённый текст

Модели выбранных страниц удерживаются для анализа по всему документу, а полный сериализованный результат буферизуется; память растёт с объёмом выбранного содержимого и размером вывода

Извлечение сохраняет выбранную страницу и открытый стек тегов писателя; текущие несохранённые теги писателя включаются без закрывающих тегов и без финализации документа

Прогресс и кооперативная отмена идут через обычный жизненный цикл операций с документом

LastErrorCode возвращает 111 при некорректном вводе и 515 при сбое извлечения

См. также

ExtractStructuredPage, ExtractPageRangeText