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
| Motor | Nödvändiga engineOptions | Valfria engineOptions |
|---|---|---|
| builtin-ascii | Inga | engineOptions måste saknas eller vara ett tomt objekt |
| 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 |
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