External OCR in JSON- en C ABI-jobs

De ocr.layer-operatie accepteert builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli en rapidocr-dll; engine weglaten behoudt de built-in ASCII-default

Capability discovery somt deze ondersteunde adapters op, zonder te claimen dat externe programma's, libraries, taaldata of ONNX-modellen op de executiehost zijn geïnstalleerd

Tesseract-voorbeeld

{"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}}

Plaats dit object in de operations-array van een file-job en voeg input- en output-paden toe, of geef het rechtstreeks door aan hpdf_document_execute_json_v1 met een geladen handle en binary/result-callbacks

EngineVereiste engineOptionsOptionele engineOptions
builtin-asciiGeenengineOptions moet afwezig of een leeg object zijn
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 en lokale resources

Externe engines vragen een expliciete objectwaardige engineOptions; onbekende keys, verkeerde JSON-types, paden of taalstrings met NUL en lege vereiste waarden worden geweigerd

Tesseract defaultt naar language=eng, pageSegMode=3 en engineMode=3; segmentatiemodi 0 en 2 herkennen geen tekst en worden geweigerd, terwijl de overige modi tot en met 13 worden geaccepteerd

engineMode accepteert 0 tot en met 3; trained-data-bestanden moeten de gekozen modus ondersteunen, en meertalige Tesseract-taalexpressies zoals eng+fra vragen de bijbehorende lokale modellen

RapidOCR CLI gebruikt de native THPDFRapidOCROptions.Default-modelnamen en defaultt beide thread-limieten naar 1; hij accepteert expliciet aangeleverde dictionary- en fontpaden, en de geconfigureerde bridge moet het lokale TSV-contract implementeren

RapidOCR DLL start met THPDFRapidOCRDLLOptions.ForLanguage(language), defaultend naar ch; taalprofielen kiezen recognition model, dictionary en leesrichting, en expliciete options kunnen die keuzes overschrijven

Modelbestandsnamen worden onder modelDirectory opgelost volgens de native adapters; library-bitness moet matchen met het hostproces, terwijl een CLI-engine als apart lokaal proces draait

Zorg voor en selecteer deze resources expliciet; de operatie installeert geen engines, downloadt geen modellen, zoekt geen willekeurige executables en gebruikt geen externe OCR-service

Budgetten en annulering

timeoutMilliseconds defaultt naar 60.000 en accepteert integers van 1 tot en met 3.600.000; de effectieve adapter-timeout is afgeklemd door budget.timeMilliseconds

maxPixels defaultt naar 16.777.216 en accepteert integers van 1 tot en met 67.108.864; diens effectieve cap is het minimum van de gevraagde waarde, budget.pixels en budget.memoryBytes / 16

De effectieve engine pixel-cap begrenst ook OCR-paginarendering vóór herkenning; woord-, content- en UTF-16-tekstbudgetten zijn afgeklemd door de memory-ruimte van de operatie

Deze limieten begrenzen geconfigureerde buffers en operatieresources; externe DLL-modelallocatie vormt geen strikte proces-RSS-quota

Native calls lenen Document.OperationCancellationToken voor rendering en herkenning; C callback-annulering wordt gepolled op coöperatieve operation-, invoer- en uitvoer-checkpoints, en een draaiende externe engine kan doorlopen tot diens timeout of het volgende callback-checkpoint

Lokale CLI-falen, ongeldige of incomplete TSV-uitvoer en adapter-timeouts verwerpen de operatie; geconfigureerde operation-tijd en pixel-limieten behouden de gestructureerde budget-faalcategorie

Uitvoer- en transactiegedrag

Het resultaat rapporteert engine, recognizedPages, skippedPages, acceptedWords en droppedWords; het engine-veld bevat de beschrijvende naam van de native adapter

minimumConfidence moet een getal van 0 tot en met 1 zijn, en skipPagesWithText en replaceExisting moeten JSON-Booleans zijn

Geaccepteerde Unicode-woorden worden onzichtbare tekst met ToUnicode-mappings en bronpagina-geometrie; de scanafbeelding blijft in de uitvoer, en het bronbestand blijft ongewijzigd tenzij de aanroeper bewust naar datzelfde bestandspad publiceert

File-jobs behouden een bestaande destination bij falen en publiceren via een staging-bestand in dezelfde directory; C ABI-mutaties committen pas nadat zowel PDF-bytes als JSON-resultaatlevering slagen, met rollback bij falen en weggooiverplichting van al geleverde bytes voor de aanroeper

Acceptatie

Tests/Delphi/Run-JobOCRTests.ps1 draait vier adapter-dispatch-profielen, misvormde configuratie, pixel- en elapsed-time-budgetten, partiele-woord-rejectie, procesfalen, timeout en destination/bron-preservatie op Win32 en Win64

Echte Tesseract-executable en modelpaden aanleveren oefent live herkenning; onafhankelijke pypdf- en MuPDF-readers verifiëren Unicode doorzoekbare tekst en ongewijzigde zichtbare scanpixels, terwijl de optionele echte Win64 ABI-DLL-check partiele callbacks en rollback van gefaalde operaties verifieert

Zie document operations, Tesseract-adapters, lokale RapidOCR-modellen, native RapidOCR-libraries en doorzoekbare OCR-tekstlagen