Перейти к содержимому
getnextpdf.com

Pro редакция

Interop

NextPDF Pro предоставляет версионированный набор объектов передачи данных (DTO) результатов, которые сериализуют вывод анализа PDF — сведения о документе, страницы, текстовые блоки, сегментацию и данные форм — в стабильную, зафиксированную схемой форму JSON для потребления внешними системами и инструментами.

Эта возможность поставляется в NextPDF Pro (nextpdf/pro) и активируется лицензионным конвертом уровня Pro. Развёртывание без такого права доступа не загружает классы этой возможности. Interop входит в редакцию Pro; отдельного флага лицензии для каждой возможности нет. Сравнить редакции и получить лицензию.

Окно терминала
composer require nextpdf/pro:^3

Когда вывод обработки PDF пересекает границу процесса или службы, получателю нужен стабильный контракт. Поверхность Interop V1 предоставляет его:

  • InteropResultInterface — каждый DTO результата реализует его. Каждый сериализуется в безопасный для JSON массив, который всегда несёт ключ schema_version, и в строку JSON.
  • DTO результатовDocumentInfo, PageInfo, BoundingBox, ExtractedText / ExtractedPage / TextBlock, DocumentSegmentation / Segment и FormData / FormField. Каждый — это неизменяемое представление одного результата анализа.
  • SchemaLock — защита CI. Она хранит SHA-256 замороженной схемы и завершает сборку с ошибкой, если файл схемы изменяется без соответствующего повышения версии, чтобы контракт передачи данных не мог измениться молча.

Поверхность Interop явно версионирована (SCHEMA_VERSION). Относитесь к ней как к контракту публичного API: аддитивные изменения повышают схему; ломающие изменения требуют новой мажорной версии.

Форма сериализации рассматривается как контракт публичного API, а не как деталь реализации. Каждый DTO несёт ключ schema_version, поэтому потребители ветвятся по получаемой форме, а не гадают. SchemaLock фиксирует SHA-256 замороженной схемы в CI, поэтому формат не может измениться без повышения версии. Именно это позволяет внешним системам безопасно строиться на JSON: контракт меняется только вместе с версией. Вывод остаётся переносимым — документированные, версионированные данные, которыми владеете вы, а не форма, которая меняется под вами.

Проектный контекст: Open core, без привязки к поставщику.

КлассНазначение
InteropResultInterfaceОбщий контракт сериализации.
DocumentInfo, PageInfo, BoundingBoxОбщие DTO документа/страницы.
ExtractedText, ExtractedPage, TextBlockDTO извлечения текста.
DocumentSegmentation, SegmentDTO сегментации документа.
FormData, FormFieldDTO данных форм.
SchemaLockЗащита CI от дрейфа схемы.
$json = $result->toJson(JSON_PRETTY_PRINT);
$array = $result->toArray(); // includes 'schema_version'
use NextPDF\Pro\Interop\V1\SchemaLock;
if (! SchemaLock::verify()) {
throw new RuntimeException('Interop schema drift detected — version bump required.');
}
$payload = $result->toArray();
$httpClient->postJson($endpoint, $payload);
  • toArray() всегда включает schema_version; нижестоящие потребители должны ветвиться по нему.
  • SchemaLock::verify() возвращает false, если файл схемы отсутствует или изменён.
  • DTO — это представления только для чтения; они не запускают анализ заново.

Сериализация линейна по размеру графа результата.

DTO несут только тот вывод анализа, который вы заполняете. Во время сериализации не происходит ввода-вывода файловой системы или сети.

Interop определяет версионированную схему, принадлежащую NextPDF; он не реализует внешний стандарт.

  • Каждый DTO результата реализует InteropResultInterface и сериализуется в безопасный для JSON массив, который всегда несёт ключ schema_version, и в строку JSON.
  • DTO результатов (DocumentInfo, PageInfo, BoundingBox, ExtractedText/ExtractedPage/TextBlock, DocumentSegmentation/Segment, FormData/FormField) — это неизменяемые представления только для чтения; они не запускают анализ заново.
  • SchemaLock::verify() хранит SHA-256 замороженной схемы и возвращает false, если файл схемы отсутствует или изменён, чтобы контракт передачи данных не мог измениться молча.
  • Поверхность явно версионирована (SCHEMA_VERSION): аддитивные изменения повышают схему; ломающие изменения требуют новой мажорной версии.
  • Во время сериализации не происходит ввода-вывода файловой системы или сети.

Enterprise не меняет поведение Interop. Enterprise добавляет возможности более высокого уровня, документированные отдельно; они не требуются для использования версионированных DTO результатов.

В Core нет аналога для зафиксированных схемой, версионированных DTO результатов. Это дополнение Pro.

Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы тикетов выходят за рамки.

  • Extraction — формирует результаты текста и сегментов.
  • Form — формирует результаты данных форм.
  • Interop — Deep Reference — полный справочник полей DTO.