Aller au contenu
getnextpdf.com

Enterprise édition

Intelligence

NextPDF Enterprise Intelligence convertit des données brutes clé-valeur et tabulaires en structures typées, optionnellement validées par schéma, et orchestre la génération de PDF interrogeables en pilotant un backend OCR sur les pages numérisées. Elle décrit les structures qu’elle produit ; elle n’affirme ni la précision de l’OCR ni le rappel d’extraction.

Cette fonctionnalité est livrée dans NextPDF Enterprise (nextpdf/enterprise) et s’active avec une enveloppe de licence de palier Enterprise. Un déploiement sans ce droit ne charge pas les classes de la fonctionnalité. Un déploiement sans droit Enterprise actif ne charge pas ces classes. Comparer les éditions et obtenir une licence.

Fenêtre de terminal
composer require nextpdf/enterprise:^3

L’extracteur structuré prend des paires clé-valeur brutes — produites en amont par un accélérateur ou un analyseur heuristique — et émet des objets de paires typées. Quand un schéma est fourni, il ne conserve que les paires dont la clé correspond à un champ du schéma et signale les champs obligatoires manquants. Une paire sans confiance explicite reçoit une valeur par défaut fixe. C’est une étape de typage et de validation sur des données déjà extraites ; ce n’est pas en soi un moteur d’extraction ou de reconnaissance et elle n’attribue aucune précision calculée.

L’extracteur de tableaux prend des grilles de lignes brutes et construit des résultats de tableaux structurés avec des objets par cellule et des boîtes englobantes uniformes synthétisées, dérivées en subdivisant une zone de page normalisée. Les lignes courtes sont complétées pour que chaque ligne ait le nombre de colonnes le plus large. Un tableau sans lignes ou sans colonnes est ignoré. Les boîtes englobantes sont une synthèse de grille uniforme, pas une mise en page mesurée.

L’orchestrateur de calque interrogeable accepte un PDF numérisé ou mixte, détecte quelles pages n’ont pas de couche de texte exploitable, pilote le backend OCR configuré et produit un résultat décrivant les décomptes de mots par page et une confiance moyenne. Le texte invisible est le mécanisme d’une page numérisée interrogeable : un opérateur d’affichage de texte peut placer des glyphes alors que le mode de rendu du texte est réglé de sorte que le texte n’est ni rempli ni tracé — ISO 32000-2:2020 §9.3.3 — et les opérateurs d’affichage de texte placent des glyphes dans le flux de contenu — ISO 32000-2:2020 §9.4. Quand la source est balisée, la hiérarchie de structure logique mappe le contenu à un ordre de lecture — ISO 32000-2:2020 §14.7, la structure balisée prend en charge la réutilisation de contenu — ISO 32000-2:2020 §14.8, et les éléments de structure de tableau décrivent les lignes et les cellules — ISO 32000-2:2020 §14.8.

La rastérisation effective et l’injection de texte invisible sont réalisées par un processus sidecar distinct ; la surface PHP orchestre le flux de travail et produit les métadonnées du résultat. La sortie d’une exécution de calque est un document dérivé : toute signature existante est invalidée et le statut de conformité exige une revalidation. Les valeurs de confiance sont reprises telles quelles ou des valeurs par défaut fixes, pas un chiffre de précision garanti.

La surface trace une ligne nette entre structuration et reconnaissance. Le typage et la validation par schéma s’exécutent en cours de processus, parce qu’ils sont déterministes et peu coûteux. La reconnaissance — rastérisation et injection de texte invisible — est déléguée à un backend OCR injecté et à un sidecar distinct, parce qu’elle est lourde, spécifique au backend et qu’il vaut mieux la garder hors de la frontière de confiance PHP. Cette séparation permet à un déploiement de choisir où les images de documents et le texte reconnu sont calculés et stockés, sans changer le code appelant. Le module refuse aussi d’inventer un chiffre de précision : une paire sans étiquette reçoit une valeur par défaut fixe, et la confiance rapportée est reprise telle quelle plutôt que calculée. Un appelant ne reçoit jamais un chiffre de précision fabriqué.

Contexte de conception : Une API qui refuse de deviner.

TypeGenreRôleStabilitéDepuis
StructuredExtractorclasseType les paires clé-valeur brutes ; filtre par schéma et vérification des champs obligatoiresstable2.2.0
ExtractionSchema / SchemaFieldclassesDéfinitions de champs et ensemble des champs obligatoiresstable2.2.0
KeyValuePairclasseUne paire clé-valeur typée avec confiancestable2.2.0
TableExtractorclasseConstruit des tableaux structurés à partir de grilles de lignes brutesstable2.2.0
TableResult / TableCellclassesForme de tableau avec texte, confiance et boîte englobante par cellulestable2.2.0
SearchableOverlayclasseOrchestre la génération de PDF interrogeable adossée à l’OCRstable2.2.0
OverlayConfig / OverlayQualityclassesIndice de langue, DPI, préréglage de qualité, saut des pages nativesstable2.2.0
SearchableOverlayResult / PageOverlayInfoclassesDécomptes de mots par page et confiance moyennestable2.2.0
ExtractionConfig / ExtractionStrategyclassesStratégie heuristique vs assistée par OCR et indices OCRstable2.2.0

Le backend OCR est un contrat injecté. L’orchestrateur n’embarque pas de modèle OCR ; un déploiement fournit le backend et est responsable de l’endroit où l’OCR est calculé.

Type and schema-validate raw key-value pairs
<?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);
}

L’extracteur type et filtre des données qu’une étape amont a déjà produites. Il n’effectue lui-même aucune reconnaissance.

Searchable-overlay orchestration with safe logging
<?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;
}
}
}

Le journal ne porte que les décomptes de pages et de mots. Il ne porte ni le texte reconnu ni les octets du document. Le catch relance ; il n’avale pas l’échec.

  • Les extracteurs structuré et de tableaux consomment des données déjà extraites. Ils n’analysent pas un PDF, n’exécutent pas de modèle et ne mesurent pas la précision. La confiance est reprise telle quelle ou une valeur par défaut fixe.
  • Les boîtes englobantes de tableau synthétisées sont une subdivision de grille uniforme, pas une mise en page mesurée. Un appelant qui a besoin d’une géométrie réelle doit l’obtenir ailleurs.
  • Le calque interrogeable est un document dérivé. Toute signature numérique existante est invalidée ; le statut de conformité doit être revalidé après le calque.
  • Quand le backend OCR est indisponible, les pages concernées contribuent zéro mot plutôt que de faire échouer silencieusement toute l’exécution — vérifie le résultat par page.
  • Une page qui possède déjà une couche de texte native exploitable est ignorée par défaut. Désactive le saut dans la configuration si tu dois ré-OCR.
  • La précision de l’OCR dépend entièrement du backend fourni, de la qualité de l’entrée et de l’indice de langue. NextPDF n’affirme ni la précision de reconnaissance ni le rappel d’extraction.

L’extraction structurée et de tableaux est linéaire en fonction de la taille de l’entrée. Le coût du calque interrogeable est dominé par le backend OCR et la rastérisation du sidecar au DPI configuré ; le surcoût d’orchestration est faible. Les entrées de page et de taille sont bornées et échouent de manière fermée en cas de débordement. Le profil de reproductibilité est structural : l’extraction est déterministe pour une entrée fixe, tandis que la sortie du calque dépend du backend OCR et peut varier d’un backend ou d’une version à l’autre.

Les extracteurs sont des étapes de structuration en lecture seule. La surface de calque produit un document dérivé et borne la taille d’entrée et le nombre de pages, échouant de manière fermée en cas de débordement. Le backend OCR est un point d’intégration, pas une partie de la frontière de confiance ; un déploiement le choisit et l’exploite. Aucune opération cryptographique n’a lieu dans ce module, il ne formule donc aucune revendication FIPS.

Résidence des données et atténuations des données personnelles

Section intitulée « Résidence des données et atténuations des données personnelles »

L’extraction structurée et de tableaux s’exécute en cours de processus sur l’hôte. L’orchestration de calque interrogeable pilote un backend OCR injecté : l’endroit où ce backend s’exécute — en cours de processus, un sidecar local ou un service distant — et donc l’endroit où les images de documents et le texte reconnu sont calculés et stockés, relève d’une responsabilité de déploiement hors de la frontière de la bibliothèque. Si l’entrée contient des données personnelles, la couche de texte reconnu en contiendra aussi ; traite le document dérivé en conséquence.

La bibliothèque lève des exceptions typées avec des messages structurels et ne place ni octets de document ni texte reconnu dans le texte d’exception. Un déploiement qui journalise autour de cette surface devrait journaliser des décomptes et de la configuration — comme le montre l’exemple de production — et ne doit pas journaliser la charge PDF brute ni le texte reconnu vers des journaux ou un backend APM.

Aucune opération cryptographique n’a lieu dans ce module, il n’y a donc aucun comportement spécifique au mode FIPS.

RevendicationNormeClause
Le mode de rendu du texte contrôle si les glyphes sont remplis, tracés ou ni l’un ni l’autre (la base du texte OCR invisible).ISO 32000-2:2020§9.3.3
Les opérateurs d’affichage de texte placent des glyphes dans le flux de contenu.ISO 32000-2:2020§9.4
La hiérarchie de structure logique mappe le contenu à un ordre de lecture.ISO 32000-2:2020§14.7
La structure balisée prend en charge la réutilisation de contenu.ISO 32000-2:2020§14.8
Les éléments de structure de tableau décrivent les lignes et les cellules.ISO 32000-2:2020§14.8
L’arbre de structure mappe le contenu à un ordre de lecture.ISO 32000-2:2020§14.7

Toutes les clauses sont paraphrasées. NextPDF ne reproduit pas de texte normatif. Consulte la norme publiée pour la formulation faisant autorité. NextPDF ne formule aucune revendication de précision OCR ni de rappel d’extraction ; cette page énonce les structures produites et la frontière d’orchestration, pas une garantie de qualité.

  • Les extracteurs structuré et de tableaux consomment des données déjà extraites ; ils n’analysent pas un PDF, n’exécutent pas de modèle et ne mesurent pas la précision. La confiance est reprise telle quelle ou une valeur par défaut fixe.
  • Un filtre de schéma ne conserve que les paires dont la clé correspond à un champ du schéma et signale les champs obligatoires manquants ; les boîtes englobantes de tableau synthétisées sont une subdivision de grille uniforme, pas une mise en page mesurée.
  • Le calque interrogeable est un document dérivé : toute signature numérique existante est invalidée et le statut de conformité doit être revalidé.
  • Quand le backend OCR est indisponible, les pages concernées contribuent zéro mot plutôt que de faire échouer silencieusement toute l’exécution ; une page avec une couche de texte native exploitable est ignorée par défaut.
  • Les entrées de page et de taille sont bornées et échouent de manière fermée en cas de débordement. L’extraction est déterministe pour une entrée fixe ; la sortie du calque dépend du backend OCR fourni.

Cette page documente uniquement le comportement observable de l’extérieur et la surface d’API publique prise en charge. Les chemins d’espace de noms internes, les classes utilitaires, les tables de mécanismes, les noms de fichiers de runbook et les préfixes de ticket sont hors périmètre.

NextPDF Core (Apache-2.0) n’a aucune orchestration de calque interrogeable ni surface de structuration validée par schéma — aucune ; cette capacité n’a pas d’équivalent de palier Core. Le modèle AST de Core est la base du document analysé, pas une surface d’extraction ou d’OCR.

NextPDF Pro fournit une extraction structurelle pilotée par l’AST sur un document déjà analysé ; il ne fournit pas la structuration clé-valeur validée par schéma, la reconstruction de tableaux à partir de grilles brutes ni l’orchestration de calque interrogeable adossée à l’OCR. Celles-ci sont livrées dans le seul paquet nextpdf/enterprise.

Les extracteurs structuré/de tableaux et l’orchestrateur de calque sont décrits au niveau du comportement. La rastérisation effective et l’injection de texte invisible s’exécutent dans un processus sidecar distinct ; les détails internes du sidecar, le modèle OCR et tout détail interne d’orchestration sont hors du périmètre de la surface publique. Le backend OCR est un contrat injecté fourni par le déploiement.

Le déploiement fournit et exploite le backend OCR et choisit où l’OCR est calculé (en cours de processus, un sidecar local ou un service distant) — et donc où les images de documents et le texte reconnu sont calculés et stockés. NextPDF Enterprise orchestre le flux de travail et produit les métadonnées du résultat ; il n’embarque pas de modèle OCR et ne garantit ni la précision de reconnaissance ni le rappel d’extraction.

Aucune restriction de contrôle des exportations ne s’applique à la surface Intelligence. La bibliothèque n’affirme aucune garantie de précision OCR ni de rappel d’extraction et aucun statut de conformité réglementaire. Cette documentation n’est pas un avis juridique ; consulte tes propres conseillers en conformité et juridiques.