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 StringDLL
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, или пустая строка для всех страниц |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) или PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Zero or PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) |
Возвращаемые значения
JSON содержит version: 2 и массив pages по схеме, документированной в ExtractStructuredPage; стабильные идентификаторы семантических узлов действуют между страницами
XHTML объединяет семантическое содержимое, причём соединённые фрагменты таблиц остаются внутри одной таблицы, а не требуют по section на страницу
CSV содержит только таблицы и пуст, когда ни одна выбранная страница их не имеет; продолженные логические таблицы используют один заголовок таблицы и опускают опознанные повторяющиеся строки заголовков
Некорректный диапазон, формат или опция и любой сбой извлечения возвращают пустую строку
Примечания
Анализ использует SetStructuredTextOptions независимо от специфичных для формата Options; источники чтения и предупреждения о резервных путях смотрите в GetLastStructuredTextDiagnostics
Когда привязки содержимого полны, приоритет имеет реальный порядок дерева тегов; неразрешённое или неоднозначное содержимое удерживает извлечённый текст в mixed- или geometric-резерве, а неизвестные пользовательские роли не угадываются по их именам
Межстраничный анализ опознаёт повторяющиеся служебные элементы у полей и совместимые продолжения таблиц; флаги по умолчанию опознают служебные элементы, сохраняя их текст
Тегированные ячейки сохраняют пустое содержимое и явные охваты строк и колонок; некорректные или перекрывающиеся сетки таблиц уходят в резерв, сохраняя извлечённый текст
Модели выбранных страниц удерживаются для анализа по всему документу, а полный сериализованный результат буферизуется; память растёт с объёмом выбранного содержимого и размером вывода
Извлечение сохраняет выбранную страницу и открытый стек тегов писателя; текущие несохранённые теги писателя включаются без закрывающих тегов и без финализации документа
Прогресс и кооперативная отмена идут через обычный жизненный цикл операций с документом
LastErrorCode возвращает 111 при некорректном вводе и 515 при сбое извлечения