Enterprise редакция
Аналитика
Краткий обзор
Заголовок раздела «Краткий обзор»NextPDF Enterprise Intelligence преобразует необработанные данные «ключ-значение» и таблицы в типизированные, при необходимости проверенные по схеме структуры и оркеструет генерацию PDF с возможностью поиска, управляя OCR-бэкендом над отсканированными страницами. Он описывает структуры, которые формирует; он не заявляет о точности OCR или полноте извлечения.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы этой возможности. Развёртывание без активного права Enterprise не загружает эти классы. Сравните редакции и получите лицензию.
Установка
Заголовок раздела «Установка»composer require nextpdf/enterprise:^3Концептуальный обзор
Заголовок раздела «Концептуальный обзор»Структурированный извлекатель принимает необработанные пары «ключ-значение» — сформированные на предыдущем шаге акселератором или эвристическим парсером — и выдаёт типизированные объекты пар. Когда задана схема, он оставляет только те пары, ключ которых соответствует полю схемы, и сообщает, каких обязательных полей не хватает. Пара без явной достоверности получает фиксированное значение по умолчанию. Это шаг типизации и проверки над уже извлечёнными данными; сам по себе он не является движком извлечения или распознавания и не вычисляет точность.
Извлекатель таблиц принимает необработанные сетки строк и строит структурированные результаты таблиц с объектами для каждой ячейки и синтезированными однородными ограничивающими прямоугольниками, полученными делением нормализованной области страницы. Короткие строки дополняются так, чтобы у каждой строки было максимальное число столбцов. Таблица без строк или без столбцов пропускается. Ограничивающие прямоугольники — это синтез однородной сетки, а не измеренный макет.
Оркестратор слоя с возможностью поиска принимает отсканированный или смешанный PDF, определяет, на каких страницах нет пригодного текстового слоя, управляет настроенным OCR-бэкендом и формирует результат, описывающий число слов на каждой странице и среднюю достоверность. Невидимый текст — это механизм страницы с возможностью поиска в отсканированном PDF: оператор вывода текста может разместить глифы, когда режим отрисовки текста задан так, что текст не заливается и не обводится — ISO 32000-2:2020 §9.3.3, — а операторы вывода текста размещают глифы в потоке содержимого — ISO 32000-2:2020 §9.4. Когда источник тегирован, иерархия логической структуры сопоставляет содержимое с порядком чтения — ISO 32000-2:2020 §14.7, тегированная структура поддерживает повторное использование содержимого — ISO 32000-2:2020 §14.8, а элементы структуры таблицы описывают строки и ячейки — ISO 32000-2:2020 §14.8.
Сама растеризация и внедрение невидимого текста выполняются отдельным sidecar-процессом; поверхность на PHP оркеструет рабочий процесс и формирует метаданные результата. Результат прогона наложения — это производный документ: любая существующая подпись становится недействительной, а статус соответствия требует повторной проверки. Значения достоверности — это пробрасываемые или фиксированные значения по умолчанию, а не гарантированный показатель точности.
Почему это работает именно так
Заголовок раздела «Почему это работает именно так»Эта поверхность проводит чёткую границу между структурированием и распознаванием. Типизация и проверка по схеме выполняются внутри процесса, потому что они детерминированны и дёшевы. Распознавание — растеризация и внедрение невидимого текста — делегируется внедрённому OCR-бэкенду и отдельному sidecar, потому что оно тяжёлое, зависит от бэкенда и его лучше держать за пределами границы доверия PHP. Такое разделение позволяет развёртыванию выбирать, где вычисляются и хранятся изображения документов и распознанный текст, не меняя вызывающий код. Модуль также отказывается выдумывать показатель точности: непомеченная пара получает фиксированное значение по умолчанию, а сообщаемая достоверность пробрасывается, а не вычисляется. Вызывающему коду никогда не передаётся сфабрикованное число точности.
Предыстория проектирования: API, который отказывается угадывать.
Поверхность API
Заголовок раздела «Поверхность API»| Тип | Вид | Роль | Стабильность | Начиная с |
|---|---|---|---|---|
StructuredExtractor | класс | Типизирует необработанные пары «ключ-значение»; фильтр по схеме и проверка обязательных полей | стабильный | 2.2.0 |
ExtractionSchema / SchemaField | классы | Определения полей и набор обязательных полей | стабильный | 2.2.0 |
KeyValuePair | класс | Одна типизированная пара «ключ-значение» с достоверностью | стабильный | 2.2.0 |
TableExtractor | класс | Строит структурированные таблицы из необработанных сеток строк | стабильный | 2.2.0 |
TableResult / TableCell | классы | Форма таблицы с текстом, достоверностью и ограничивающим прямоугольником для каждой ячейки | стабильный | 2.2.0 |
SearchableOverlay | класс | Оркеструет генерацию PDF с возможностью поиска через OCR | стабильный | 2.2.0 |
OverlayConfig / OverlayQuality | классы | Подсказка языка, DPI, предустановка качества, пропуск собственных страниц | стабильный | 2.2.0 |
SearchableOverlayResult / PageOverlayInfo | классы | Число слов на каждой странице и средняя достоверность | стабильный | 2.2.0 |
ExtractionConfig / ExtractionStrategy | классы | Эвристическая стратегия против стратегии с поддержкой OCR и подсказки OCR | стабильный | 2.2.0 |
OCR-бэкенд — это внедряемый контракт. Оркестратор не встраивает модель OCR; развёртывание предоставляет бэкенд и отвечает за то, где выполняется OCR.
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Intelligence\StructuredExtractor;use NextPDF\Enterprise\Intelligence\ExtractionSchema;
/** * Type raw pairs against a schema and list any missing required fields. * * @param list<array{key: string, value: string, confidence?: float}> $rawPairs Upstream key-value data. * * @return list<string> Missing required field names (empty when compliant). */function validate(array $rawPairs, ExtractionSchema $schema): array{ $extractor = new StructuredExtractor(); $pairs = $extractor->extract($rawPairs, $schema);
return $extractor->validateSchema($schema, $pairs);}Извлекатель типизирует и фильтрует данные, которые уже сформировал предыдущий шаг. Сам он не выполняет распознавания.
Пример кода — рабочая среда
Заголовок раздела «Пример кода — рабочая среда»<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Accelerator\OcrStrategyInterface;use NextPDF\Enterprise\Intelligence\OverlayConfig;use NextPDF\Enterprise\Intelligence\SearchableOverlay;use Psr\Log\LoggerInterface;
final readonly class OverlayJob{ public function __construct( private OcrStrategyInterface $ocr, private LoggerInterface $logger, ) {}
/** * Generate a searchable PDF from a scanned input. * * @param string $pdfData Scanned or mixed PDF bytes. * * @return string The derived searchable PDF bytes. */ public function run(string $pdfData): string { try { $result = (new SearchableOverlay($this->ocr)) ->generate($pdfData, new OverlayConfig(language: 'eng'));
$this->logger->info('Overlay complete', [ 'pages' => $result->pageCount, 'words' => $result->wordCount, ]);
return $result->pdfData; } catch (\Throwable $e) { $this->logger->error('Overlay failed', ['error' => $e->getMessage()]);
throw $e; } }}Журнал несёт только число страниц и слов. Он не содержит распознанного текста или байтов документа. Блок catch повторно выбрасывает исключение; он не проглатывает ошибку.
Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Структурированный извлекатель и извлекатель таблиц потребляют уже извлечённые данные. Они не разбирают PDF, не запускают модель и не измеряют точность. Достоверность пробрасывается или является фиксированным значением по умолчанию.
- Синтезированные ограничивающие прямоугольники таблицы — это деление на однородную сетку, а не измеренный макет. Вызывающему коду, которому нужна реальная геометрия, придётся получить её в другом месте.
- Слой с возможностью поиска — это производный документ. Любая существующая цифровая подпись становится недействительной; статус соответствия необходимо повторно проверить после наложения.
- Когда OCR-бэкенд недоступен, затронутые страницы дают ноль слов, а не приводят к молчаливому сбою всего прогона — проверяйте результат по каждой странице.
- Страница, у которой уже есть пригодный собственный текстовый слой, по умолчанию пропускается. Отключите пропуск в конфигурации, если требуется повторный OCR.
- Точность OCR полностью зависит от предоставленного бэкенда, качества входных данных и подсказки языка. NextPDF не заявляет о точности распознавания или полноте извлечения.
Производительность
Заголовок раздела «Производительность»Структурированное извлечение и извлечение таблиц линейны по размеру входных данных. Стоимость слоя с возможностью поиска определяется в основном OCR-бэкендом и растеризацией в sidecar при настроенном DPI; накладные расходы оркестрации невелики. Входные данные по числу страниц и размеру ограничены и срабатывают защищённым отказом при переполнении. Профиль воспроизводимости — structural: извлечение детерминированно для фиксированного входа, тогда как результат наложения зависит от OCR-бэкенда и может различаться между бэкендами или версиями.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Извлекатели — это шаги структурирования только для чтения. Поверхность наложения формирует производный документ, ограничивает размер входных данных и число страниц и срабатывает защищённым отказом при переполнении. OCR-бэкенд — это точка интеграции, а не часть границы доверия; развёртывание выбирает и эксплуатирует его. В этом модуле не выполняется криптографических операций, поэтому он не делает заявлений о FIPS.
Размещение данных и меры по защите ПДн
Заголовок раздела «Размещение данных и меры по защите ПДн»Структурированное извлечение и извлечение таблиц выполняются внутри процесса на хосте. Оркестрация слоя с возможностью поиска управляет внедрённым OCR-бэкендом: где работает этот бэкенд — внутри процесса, в локальном sidecar или в удалённой службе — и, следовательно, где вычисляются и хранятся изображения документов и распознанный текст, является обязанностью развёртывания за пределами границы библиотеки. Если вход содержит персональные данные, их будет содержать и распознанный текстовый слой; относитесь к производному документу соответствующим образом.
Безопасная телеметрия и очистка журналов
Заголовок раздела «Безопасная телеметрия и очистка журналов»Библиотека выбрасывает типизированные исключения со структурными сообщениями и не помещает в текст исключений байты документа или распознанный текст. Развёртывание, которое ведёт журналы вокруг этой поверхности, должно записывать счётчики и конфигурацию — как показано в примере для рабочей среды — и не должно записывать необработанные данные PDF или распознанный текст в журналы или в APM-бэкенд.
Поведение в режиме FIPS
Заголовок раздела «Поведение в режиме FIPS»В этом модуле не выполняется криптографических операций, поэтому специфичного для режима FIPS поведения нет.
Соответствие
Заголовок раздела «Соответствие»| Утверждение | Стандарт | Пункт |
|---|---|---|
| Режим отрисовки текста определяет, заливаются ли глифы, обводятся или нет (основа для невидимого OCR-текста). | ISO 32000-2:2020 | §9.3.3 |
| Операторы вывода текста размещают глифы в потоке содержимого. | ISO 32000-2:2020 | §9.4 |
| Иерархия логической структуры сопоставляет содержимое с порядком чтения. | ISO 32000-2:2020 | §14.7 |
| Тегированная структура поддерживает повторное использование содержимого. | ISO 32000-2:2020 | §14.8 |
| Элементы структуры таблицы описывают строки и ячейки. | ISO 32000-2:2020 | §14.8 |
| Дерево структуры сопоставляет содержимое с порядком чтения. | ISO 32000-2:2020 | §14.7 |
Все пункты приведены в пересказе. NextPDF не воспроизводит нормативный текст. За авторитетной формулировкой обращайтесь к опубликованному стандарту. NextPDF не делает заявлений о точности OCR или полноте извлечения; на этой странице описаны формируемые структуры и граница оркестрации, а не гарантия качества.
Контракт поведения
Заголовок раздела «Контракт поведения»- Структурированный извлекатель и извлекатель таблиц потребляют уже извлечённые данные; они не разбирают PDF, не запускают модель и не измеряют точность. Достоверность пробрасывается или является фиксированным значением по умолчанию.
- Фильтр по схеме оставляет только пары, ключ которых соответствует полю схемы, и сообщает об отсутствующих обязательных полях; синтезированные ограничивающие прямоугольники таблицы — это деление на однородную сетку, а не измеренный макет.
- Слой с возможностью поиска — это производный документ: любая существующая цифровая подпись становится недействительной, а статус соответствия необходимо повторно проверить.
- Когда OCR-бэкенд недоступен, затронутые страницы дают ноль слов, а не приводят к молчаливому сбою всего прогона; страница с пригодным собственным текстовым слоем по умолчанию пропускается.
- Входные данные по числу страниц и размеру ограничены и срабатывают защищённым отказом при переполнении. Извлечение детерминированно для фиксированного входа; результат наложения зависит от предоставленного OCR-бэкенда.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы заявок находятся вне области рассмотрения.
Резервный режим Core
Заголовок раздела «Резервный режим Core»У NextPDF Core (Apache-2.0) нет ни оркестрации слоя с возможностью поиска, ни поверхности структурирования с проверкой по схеме — никакой; у этой возможности нет эквивалента в уровне Core. Модель AST в Core — это база разобранного документа, а не поверхность извлечения или OCR.
Резервный режим Pro
Заголовок раздела «Резервный режим Pro»NextPDF Pro поставляет структурное извлечение на основе AST над уже разобранным документом; он не предоставляет структурирования «ключ-значение» с проверкой по схеме, восстановления таблиц из необработанных сеток или оркестрации OCR-слоя с возможностью поиска. Они поставляются только в пакете nextpdf/enterprise.
Замечание о границе Enterprise
Заголовок раздела «Замечание о границе Enterprise»Структурированный извлекатель и извлекатель таблиц, а также оркестратор наложения описаны на уровне поведения. Сама растеризация и внедрение невидимого текста выполняются в отдельном sidecar-процессе; внутренние детали sidecar, модель OCR и любые внутренние детали оркестрации находятся вне публичной поверхности. OCR-бэкенд — это внедряемый контракт, предоставляемый развёртыванием.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Развёртывание предоставляет и эксплуатирует OCR-бэкенд и выбирает, где выполняется OCR (внутри процесса, в локальном sidecar или в удалённой службе) — и, следовательно, где вычисляются и хранятся изображения документов и распознанный текст. NextPDF Enterprise оркеструет рабочий процесс и формирует метаданные результата; он не встраивает модель OCR и не гарантирует точности распознавания или полноты извлечения.
Граница правового соответствия
Заголовок раздела «Граница правового соответствия»К поверхности Intelligence не применяется ограничение экспортного контроля. Библиотека не даёт гарантий точности OCR или полноты извлечения и не утверждает статуса нормативного соответствия. Эта документация не является юридическим заключением; обращайтесь к собственным консультантам по комплаенсу и праву.
См. также
Заголовок раздела «См. также»- Intelligence reference — глубокий справочник API для этой возможности.
- Pro extraction — структурные блоки цитирования на основе AST.
- Privacy — обнаружение ПДн в извлечённом тексте.
- NextPDF Enterprise — полная поверхность возможностей Enterprise.
- Core AST — модель разобранного документа.
- Tagged PDF · OCR · Searchable PDF — термины глоссария.