OCR externe dans les jobs JSON et C ABI

L’opération ocr.layer accepte builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli et rapidocr-dll ; omettre engine conserve le défaut ASCII intégré

La découverte de capacités liste ces adaptateurs pris en charge, sans affirmer que les programmes externes, bibliothèques, données de langue ou modèles ONNX sont installés sur l’hôte d’exécution

Exemple Tesseract

{"schemaVersion":1,"type":"ocr.layer","pages":[0],"dpi":300,
 "minimumConfidence":0.7,"skipPagesWithText":true,"replaceExisting":false,
 "engine":"tesseract-cli",
 "engineOptions":{"executablePath":"C:/OCR/tesseract.exe",
   "tessDataDirectory":"C:/OCR/tessdata","language":"eng",
   "pageSegMode":6,"engineMode":3,"timeoutMilliseconds":30000,
   "maxPixels":16777216}}

Placez cet objet dans le tableau operations d’un file job et ajoutez les chemins input et output, ou passez-le directement à hpdf_document_execute_json_v1 avec un handle chargé et des callbacks binaires/de résultat

MoteurengineOptions requisengineOptions optionnels
builtin-asciiAucunengineOptions doit être absent ou un objet vide
tesseract-cliexecutablePath, tessDataDirectorylanguage, pageSegMode, engineMode, timeoutMilliseconds, maxPixels
tesseract-dlllibraryPath, tessDataDirectorylanguage, pageSegMode, engineMode, timeoutMilliseconds, maxPixels
rapidocr-clipythonExecutable, bridgeScript, modelDirectorydetectionModel, recognitionModel, classificationModel, characterDictionary, fontPath, useAngleClassifier, intraOpThreads, interOpThreads, timeoutMilliseconds, maxPixels
rapidocr-dlllibraryPath, modelDirectorylanguage, detectionModel, recognitionModel, classificationModel, characterDictionary, useAngleClassifier, rightToLeft, threads, timeoutMilliseconds, maxPixels

Options et ressources locales

Les moteurs externes exigent un engineOptions explicite à valeur objet ; clés inconnues, types JSON incorrects, chemins ou chaînes de langue contenant NUL, et valeurs requises vides sont rejetés

Tesseract vaut language=eng, pageSegMode=3 et engineMode=3 par défaut ; les modes de segmentation 0 et 2 ne reconnaissent pas de texte et sont rejetés, tandis que les autres modes jusqu’à 13 sont acceptés

engineMode accepte 0 à 3 ; les fichiers trained-data doivent prendre en charge le mode choisi, et les expressions de langues Tesseract multilingues telles que eng+fra exigent les modèles locaux correspondants

RapidOCR CLI utilise les noms de modèles natifs de THPDFRapidOCROptions.Default et fixe par défaut les deux limites de threads à 1 ; il accepte des chemins de dictionnaire et de police explicitement fournis, et le pont configuré doit implémenter le contrat TSV local

RapidOCR DLL démarre avec THPDFRapidOCRDLLOptions.ForLanguage(language), ch par défaut ; les profils de langues sélectionnent modèle de reconnaissance, dictionnaire et direction de lecture, et des options explicites peuvent remplacer ces sélections

Les noms de fichiers de modèles se résolvent sous modelDirectory selon les adaptateurs natifs ; la bitness de la bibliothèque doit correspondre au process hôte, tandis qu’un moteur CLI s’exécute comme un processus local séparé

Provisionnez et sélectionnez ces ressources explicitement ; l’opération n’installe pas de moteurs, ne télécharge pas de modèles, ne cherche pas d’exécutables arbitraires et n’utilise pas de service OCR distant

Budgets et annulation

timeoutMilliseconds vaut 60 000 par défaut et accepte des entiers de 1 à 3 600 000 ; le timeout effectif de l’adaptateur est plafonné par budget.timeMilliseconds

maxPixels vaut 16 777 216 par défaut et accepte des entiers de 1 à 67 108 864 ; son plafond effectif est le minimum de la valeur demandée, de budget.pixels et de budget.memoryBytes / 16

Le plafond de pixels effectif du moteur limite aussi le rendu de pages OCR avant la reconnaissance ; les budgets de mots, de contenu et de texte UTF-16 sont plafonnés par le quota mémoire de l’opération

Ces limites bornent les buffers configurés et les ressources d’opérations ; l’allocation de modèles d’une DLL externe ne constitue pas un quota strict de RSS process

Les appels natifs empruntent Document.OperationCancellationToken pour le rendu et la reconnaissance ; l’annulation des callbacks C est sondée aux checkpoints coopératifs d’opérations, d’entrées et de sorties, et un moteur externe en cours peut continuer jusqu’à son timeout ou au prochain checkpoint de callback

Les échecs CLI locaux, la sortie TSV invalide ou incomplète et les timeouts d’adaptateurs rejettent l’opération ; les limites configurées de temps et de pixels d’opérations conservent la catégorie d’échec de budget structurée

Sortie et comportement transactionnel

Le résultat rapporte engine, recognizedPages, skippedPages, acceptedWords et droppedWords ; le champ engine contient le nom descriptif de l’adaptateur natif

minimumConfidence doit être un nombre de 0 à 1, et skipPagesWithText et replaceExisting doivent être des booléens JSON

Les mots Unicode acceptés deviennent du texte invisible avec des mappings ToUnicode et la géométrie de la page source ; l’image de scan reste dans la sortie, et le fichier source reste inchangé sauf si l’appelant publie intentionnellement vers ce même chemin de fichier

Les file jobs préservent une destination existante en cas d’échec et publient via un fichier de staging du même répertoire ; les mutations C ABI committent après le succès de la livraison des octets PDF et du résultat JSON, avec rollback en cas d’échec et mise au rebut par l’appelant des octets déjà livrés

Acceptation

Tests/Delphi/Run-JobOCRTests.ps1 exécute quatre profils de dispatch d’adaptateurs, des configurations mal formées, les budgets de pixels et de temps écoulé, le rejet de mots partiels, un échec de processus, un timeout et la préservation destination/source sur Win32 et Win64

Fournir de vrais chemins d’exécutable et de modèles Tesseract exerce la reconnaissance réelle ; des lecteurs indépendants pypdf et MuPDF vérifient le texte cherchable Unicode et les pixels de scan visibles inchangés, tandis que la vérification optionnelle de vraie DLL ABI Win64 vérifie les callbacks partiels et le rollback d’opérations échouées

Voir opérations documentaires, adaptateurs Tesseract, modèles RapidOCR locaux, bibliothèques RapidOCR natives et couches de texte OCR cherchables