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
| Engine | Vereiste engineOptions | Optionele engineOptions |
|---|---|---|
| builtin-ascii | Geen | engineOptions moet afwezig of een leeg object zijn |
| 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 |
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