External OCR in JSON and C ABI Jobs

Operace ocr.layer přijme builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli a rapidocr-dll; vynechání engine zachová vestavěný ASCII default

Odhalení schopností tyhle podporované adaptéry vypíše, aniž by tvrdilo, že externí programy, knihovny, jazyková data či ONNX modely jsou na prováděcím hostiteli instalované

Příklad 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}}

Objekt umístěte do pole operations file jobu a přidejte cesty input a output, případně ho předejte přímo do hpdf_document_execute_json_v1 s načteným handlem a binárními/výsledkovými callbacky

EnginePovinné engineOptionsVolitelné engineOptions
builtin-asciiŽádnéengineOptions musí chybět, či být prázdný 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

Volby a lokální resource

Externí engine vyžadují explicitní objektový engineOptions; neznámé klíče, špatné JSON typy, cesty či jazykové řetězce obsahující NUL a prázdné povinné hodnoty se odmítají

Tesseract defaultuje na language=eng, pageSegMode=3 a engineMode=3; segmentační režimy 0 a 2 nerozeznávají text a odmítnou se, zatímco zbývající režimy do 13 se přijímají

engineMode přijímá 0 až 3; soubory natrénovaných dat musí zvolený režim podporovat a vícejazyčné jazykové výrazy Tesseract jako eng+fra vyžadují odpovídající lokální modely

RapidOCR CLI použije nativní modelové názvy THPDFRapidOCROptions.Default a defaultuje oba thread limity na 1; přijme explicitně dodané cesty slovníku i fontu a nakonfigurovaný most musí implementovat lokální TSV kontrakt

RapidOCR DLL startuje přes THPDFRapidOCRDLLOptions.ForLanguage(language), defaultně ch; jazykové profily vyberou model rozpoznávání, slovník i směr čtení a explicitní volby je můžou přebít

Názvy modelových souborů se rozřeší pod modelDirectory podle nativních adaptérů; bitovost knihovny se musí shodovat s host procesem, zatímco CLI engine běží jako samostatný lokální proces

Ty resource zajeďte a vyberte explicitně; operace neinstaluje engine, nestahuje modely, nehledá libovolné spustitelné soubory ani nepoužívá vzdálenou OCR službu

Rozpočty a zrušení

timeoutMilliseconds defaultuje na 60 000 a přijímá celá čísla od 1 do 3 600 000; účinný timeout adaptéru se ořeže přes budget.timeMilliseconds

maxPixels defaultuje na 16 777 216 a přijímá celá čísla od 1 do 67 108 864; jeho účinný strop je minimum z vyžádané hodnoty, budget.pixels a budget.memoryBytes / 16

Účinný pixelový strop engine omezuje i render OCR stránky, dřív než rozpoznání; rozpočty slov, obsahu i UTF-16 textu se ořežou paměťovým příspěvkem operace

Ty limity ohraničují nakonfigurované buffery i resource operace; alokace modelu externí DLL nepředstavuje přísnou kvótu RSS procesu

Nativní volání si půjčí Document.OperationCancellationToken pro render i rozpoznání; cancellation callbacky C se dotazují na kooperativních checkpointech operace, vstupu i výstupu a běžící externí engine může pokračovat do svého timeoutu či dalšího callback checkpointu

Lokální selhání CLI, neplatný či nekompletní TSV výstup a timeouty adaptérů operaci odmítnou; nakonfigurované limity času i pixelů operace si uchovávají kategorii strukturovaného selhání rozpočtu

Výstup a chování transakcí

Výsledek reportuje engine, recognizedPages, skippedPages, acceptedWords a droppedWords; pole engine obsahuje popisný název nativního adaptéru

minimumConfidence musí být číslo od 0 do 1 a skipPagesWithText i replaceExisting musí být JSON Booleovské hodnoty

Přijatá Unicode slova se stanou neviditelným textem s mapováními ToUnicode i geometrií zdrojové stránky; skenovací obrázek zůstává ve výstupu a zdrojový soubor zůstává nezměněný, ledaže volající záměrně publikuje do téže cesty

File joby zachovají existující cíl při selhání a publikují přes staging soubor ve stejném adresáři; mutace C ABI se zapíší poté, co uspěje dodání jak bajtů PDF, tak JSON výsledku, s rollbackem při selhání a likvidací už dodaných bajtů volajícím

Akceptace

Tests/Delphi/Run-JobOCRTests.ps1 spustí čtyři dispatch profily adaptérů, poškozenou konfiguraci, rozpočty pixelů i uplynulého času, odmítání částečných slov, selhání procesu, timeout i zachování cíle/zdroje na Win32 a Win64

Dodání skutečné cesty spustitelného souboru i modelů Tesseract vyzkouší živé rozpoznání; nezávislé čtečky pypdf a MuPDF verifikují prohledávatelný Unicode text i nezměněné viditelné skenové pixely a volitelná skutečná kontrola Win64 ABI DLL verifikuje částečné callbacky i rollback neúspěšné operace

Viz dokumentové operace, adaptéry Tesseract, lokální modely RapidOCR, nativní knihovny RapidOCR a prohledávatelné OCR textové vrstvy