Extern OCR i JSON- och C ABI-jobb

Operationen ocr.layer accepterar builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli och rapidocr-dll; utelämnas engine behålls den inbyggda ASCII-standarden

Kapacitetsupptäckten listar dessa adaptrar som stöds, utan att hävda att externa program, bibliotek, språkdata eller ONNX-modeller finns installerade på värddatorn

Tesseract-exempel

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

Lägg detta objekt i ett filjobbs operations-array och lägg till input- och output-sökvägar, eller skicka det direkt till hpdf_document_execute_json_v1 med ett laddat handle och callbacks för binärdata och resultat

MotorNödvändiga engineOptionsValfria engineOptions
builtin-asciiIngaengineOptions måste saknas eller vara ett tomt objekt
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

Alternativ och lokala resurser

Externa motorer kräver en explicit engineOptions med objektvärde; okända nycklar, felaktiga JSON-typer, sökvägar eller språksträngar som innehåller NUL samt tomma obligatoriska värden avvisas

Tesseract använder standardvärdena language=eng, pageSegMode=3 och engineMode=3; segmenteringslägena 0 och 2 känner inte igen text och avvisas, medan övriga lägen upp till 13 accepteras

engineMode accepterar 0 till 3; träningsdatafilerna måste stödja valt läge, och flerspråkiga Tesseract-språkuttryck som eng+fra kräver motsvarande lokala modeller

RapidOCR CLI använder modellnamnen från THPDFRapidOCROptions.Default och sätter båda trådgränserna till 1 som standard; den accepterar explicit angivna sökvägar för ordlista och teckensnitt, och den konfigurerade bron måste implementera det lokala TSV-kontraktet

RapidOCR DLL startar med THPDFRapidOCRDLLOptions.ForLanguage(language), med standardvärdet ch; språkprofilerna väljer igenkänningsmodell, ordlista och läsriktning, och explicita alternativ kan åsidosätta dessa val

Modellfilnamnen slås upp under modelDirectory enligt native-adaptrarna; bibliotekets bitbredd måste matcha värdprocessen, medan en CLI-motor körs som en separat lokal process

Tillhandahåll och välj dessa resurser explicit; operationen installerar inga motorer, laddar ner inga modeller, söker inte efter godtyckliga körbara filer och använder ingen fjärr-OCR-tjänst

Budgeter och avbrott

timeoutMilliseconds har standardvärdet 60 000 och accepterar heltal från 1 till 3 600 000; adaptorns effektiva timeout begränsas av budget.timeMilliseconds

maxPixels har standardvärdet 16 777 216 och accepterar heltal från 1 till 67 108 864; den effektiva gränsen är minimum av begärt värde, budget.pixels och budget.memoryBytes / 16

Motorns effektiva pixelgräns begränsar också OCR-renderingen av sidor före igenkänningen; budgeterna för ord, innehåll och UTF-16-text begränsas av operationens minnestak

Dessa gränser gäller konfigurerade buffertar och operationsresurser; allokeringar i externa DLL-modeller utgör ingen strikt process-RSS-kvot

Native-anrop lånar Document.OperationCancellationToken för rendering och igenkänning; C-callbacks kontrolleras för avbrott vid de kooperativa kontrollpunkterna för operation, indata och utdata, och en körande extern motor kan fortsätta till sin timeout eller nästa callback-kontrollpunkt

Lokala CLI-fel, ogiltig eller ofullständig TSV-utdata och adapter-timeouts avvisar operationen; konfigurerade tids- och pixelgränser för operationen behåller den strukturerade felkategorin för budget

Utdata och transaktionsbeteende

Resultatet redovisar engine, recognizedPages, skippedPages, acceptedWords och droppedWords; engine-fältet innehåller native-adaptorns beskrivande namn

minimumConfidence måste vara ett tal från 0 till 1, och skipPagesWithText och replaceExisting måste vara booleska JSON-värden

Accepterade Unicode-ord blir osynlig text med ToUnicode-mappningar och källsidans geometri; skannbilden finns kvar i utdata och källfilen ändras inte, såvida inte anroparen medvetet publicerar till samma filsökväg

Filjobb bevarar en befintlig destination vid fel och publicerar via en staging-fil i samma katalog; C ABI-ändringar verkställs först när både PDF-bytena och JSON-resultatet har levererats, med återställning vid fel och anroparen som ägare av redan levererade byte

Acceptans

Tests/Delphi/Run-JobOCRTests.ps1 kör fyra adapter-dispatch-profiler, felaktig konfiguration, pixel- och tidsbudgeter, avvisning av partiella ord, processfel, timeout samt bevarande av destination och källa på Win32 och Win64

Med riktiga Tesseract-program och modellsökvägar testas igenkänning i drift; fristående pypdf- och MuPDF-läsare verifierar sökbar Unicode-text och oförändrade synliga skannpixlar, medan den valfria riktiga Win64 ABI DLL-kontrollen verifierar partiella callbacks och återställning vid misslyckade operationer

Se dokumentoperationer, Tesseract-adaptrar, lokala RapidOCR-modeller, native RapidOCR-bibliotek och sökbara OCR-textlager