OCR esterno nei job JSON e C ABI

L'operazione ocr.layer accetta builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli e rapidocr-dll; omettere engine conserva il default ASCII integrato

La discovery delle capability elenca questi adattatori supportati, senza affermare che programmi esterni, librerie, dati di lingua o modelli ONNX siano installati sull'host di esecuzione

Esempio 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}}

Posizionate questo oggetto nell'array operations di un file job e aggiungete i percorsi input e output, oppure passatelo direttamente a hpdf_document_execute_json_v1 con un handle caricato e callback binari/risultato

EngineengineOptions richiestiengineOptions opzionali
builtin-asciiNessunoengineOptions deve essere assente o un oggetto vuoto
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

Opzioni e risorse locali

Gli engine esterni richiedono un engineOptions esplicito a valore oggetto; chiavi sconosciute, tipi JSON errati, percorsi o stringhe di lingua contenenti NUL e valori richiesti vuoti vengono rifiutati

Tesseract ha default language=eng, pageSegMode=3 e engineMode=3; le modalità di segmentazione 0 e 2 non riconoscono testo e vengono rifiutate, mentre le restanti modalità fino a 13 sono accettate

engineMode accetta da 0 a 3; i file trained-data devono supportare la modalità scelta, e le espressioni di lingua Tesseract multilingua come eng+fra richiedono i modelli locali corrispondenti

RapidOCR CLI usa i nomi modello nativi THPDFRapidOCROptions.Default e porta entrambi i limiti thread a 1; accetta percorsi espliciti di dizionario e font, e il bridge configurato deve implementare il contratto TSV locale

RapidOCR DLL parte con THPDFRapidOCRDLLOptions.ForLanguage(language), con default ch; i profili di lingua selezionano modello di riconoscimento, dizionario e direzione di lettura, e opzioni esplicite possono sovrascrivere quelle selezioni

I nomi dei file modello si risolvono sotto modelDirectory secondo gli adattatori nativi; il bitness della libreria deve corrispondere al processo host, mentre un engine CLI gira come processo locale separato

Provisionate e selezionate esplicitamente queste risorse; l'operazione non installa engine, non scarica modelli, non cerca eseguibili arbitrari e non usa un servizio OCR remoto

Budget e cancellazione

timeoutMilliseconds ha default 60.000 e accetta interi da 1 a 3.600.000; il timeout effettivo dell'adattatore è limitato da budget.timeMilliseconds

maxPixels ha default 16.777.216 e accetta interi da 1 a 67.108.864; il suo tetto effettivo è il minimo tra il valore richiesto, budget.pixels e budget.memoryBytes / 16

Il tetto effettivo dei pixel dell'engine limita anche il rendering della pagina OCR prima del riconoscimento; i budget di parole, contenuto e testo UTF-16 sono limitati dalla concessione di memoria dell'operazione

Questi limiti vincolano i buffer configurati e le risorse dell'operazione; l'allocazione dei modelli delle DLL esterne non costituisce una quota rigorosa sul RSS del processo

Le chiamate native prendono in prestito Document.OperationCancellationToken per rendering e riconoscimento; la cancellazione dei callback C viene interrogata ai checkpoint cooperativi di operazione, input e output, e un engine esterno in esecuzione può continuare fino al proprio timeout o al prossimo checkpoint callback

I fallimenti CLI locali, output TSV non valido o incompleto e timeout degli adattatori rifiutano l'operazione; i limiti configurati di tempo e pixel dell'operazione conservano la categoria strutturata di fallimento budget

Comportamento di output e transazione

Il risultato riporta engine, recognizedPages, skippedPages, acceptedWords e droppedWords; il campo engine contiene il nome descrittivo dell'adattatore nativo

minimumConfidence deve essere un numero da 0 a 1, e skipPagesWithText e replaceExisting devono essere Boolean JSON

Le parole Unicode accettate diventano testo invisibile con mappature ToUnicode e geometria della pagina sorgente; l'immagine della scansione resta nell'output, e il file sorgente resta invariato a meno che il chiamante non pubblichi deliberatamente sullo stesso percorso file

I file job preservano una destinazione esistente in caso di fallimento e pubblicano tramite uno staging file nella stessa directory; le mutazioni C ABI commettono solo dopo che la consegna sia dei byte PDF sia del risultato JSON è riuscita, con rollback al fallimento e smaltimento dei byte già consegnati a carico del chiamante

Accettazione

Tests/Delphi/Run-JobOCRTests.ps1 esegue quattro profili di dispatch degli adattatori, configurazioni malformate, budget di pixel e tempo trascorso, rifiuto di parole parziali, fallimento di processo, timeout e preservazione di destinazione/sorgente su Win32 e Win64

Fornire percorsi reali di eseguibile e modelli Tesseract esercita il riconoscimento live; i reader indipendenti pypdf e MuPDF verificano il testo ricercabile Unicode e i pixel visivi della scansione invariati, mentre il controllo opzionale della DLL ABI Win64 reale verifica callback parziali e rollback delle operazioni fallite

Vedere operazioni documentali, adattatori Tesseract, modelli RapidOCR locali, librerie RapidOCR native e layer OCR con testo ricercabile