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
| Engine | engineOptions richiesti | engineOptions opzionali |
|---|---|---|
| builtin-ascii | Nessuno | engineOptions deve essere assente o un oggetto vuoto |
| tesseract-cli | executablePath, tessDataDirectory | language, pageSegMode, engineMode, timeoutMilliseconds, maxPixels |
| tesseract-dll | libraryPath, tessDataDirectory | language, pageSegMode, engineMode, timeoutMilliseconds, maxPixels |
| rapidocr-cli | pythonExecutable, bridgeScript, modelDirectory | detectionModel, recognitionModel, classificationModel, characterDictionary, fontPath, useAngleClassifier, intraOpThreads, interOpThreads, timeoutMilliseconds, maxPixels |
| rapidocr-dll | libraryPath, modelDirectory | language, 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