OCR externo en trabajos JSON y C ABI

La operación ocr.layer acepta builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli y rapidocr-dll; omitir engine conserva el valor por defecto ASCII integrado

El descubrimiento de capacidades lista estos adaptadores soportados, sin afirmar que los programas externos, bibliotecas, datos de idioma o modelos ONNX estén instalados en el host de ejecución

Ejemplo con 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}}

Coloca este objeto en el array operations de un file job y agrega los paths de input y output, o pásalo directamente a hpdf_document_execute_json_v1 con un handle cargado y callbacks binarios y de resultado

MotorengineOptions requeridasengineOptions opcionales
builtin-asciiNingunaengineOptions debe estar ausente o ser un objeto vacío
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

Opciones y recursos locales

Los motores externos exigen un engineOptions explícito con valor de objeto; las claves desconocidas, los tipos JSON incorrectos, los paths o cadenas de idioma con NUL y los valores requeridos vacíos se rechazan

Tesseract usa por defecto language=eng, pageSegMode=3 y engineMode=3; los modos de segmentación 0 y 2 no reconocen texto y se rechazan, mientras que los modos restantes hasta 13 se aceptan

engineMode acepta valores de 0 a 3; los archivos trained-data deben soportar el modo elegido, y las expresiones de idioma multilingües de Tesseract como eng+fra requieren los modelos locales correspondientes

RapidOCR CLI usa los nombres de modelo nativos de THPDFRapidOCROptions.Default y fija ambos límites de threads en 1; acepta paths de diccionario y fuente suministrados explícitamente, y el bridge configurado debe implementar el contrato TSV local

RapidOCR DLL arranca con THPDFRapidOCRDLLOptions.ForLanguage(language), por defecto ch; los perfiles de idioma seleccionan modelo de reconocimiento, diccionario y dirección de lectura, y las opciones explícitas pueden sobrescribir esas selecciones

Los nombres de archivos de modelo se resuelven bajo modelDirectory según los adaptadores nativos; el bitness de la biblioteca debe coincidir con el proceso host, mientras que un motor CLI corre como proceso local separado

Provisiona y selecciona estos recursos de forma explícita; la operación no instala motores, descarga modelos, busca ejecutables arbitrarios ni usa un servicio OCR remoto

Presupuestos y cancelación

timeoutMilliseconds vale 60,000 por defecto y acepta enteros de 1 a 3,600,000; el timeout efectivo del adaptador queda limitado por budget.timeMilliseconds

maxPixels vale 16,777,216 por defecto y acepta enteros de 1 a 67,108,864; su tope efectivo es el mínimo entre el valor solicitado, budget.pixels y budget.memoryBytes / 16

El tope efectivo de píxeles del motor también limita el rendering de la página OCR antes del reconocimiento; los presupuestos de palabras, contenido y texto UTF-16 quedan limitados por la asignación de memoria de la operación

Estos límites acotan los buffers configurados y los recursos de la operación; la asignación de modelos de la DLL externa no constituye una cuota estricta de RSS del proceso

Las llamadas nativas toman prestado Document.OperationCancellationToken para rendering y reconocimiento; la cancelación de callbacks C se consulta por polling en checkpoints cooperativos de operación, entrada y salida, y un motor externo en ejecución puede continuar hasta su timeout o el siguiente checkpoint de callback

Los fallos locales del CLI, la salida TSV inválida o incompleta y los timeouts del adaptador rechazan la operación; los límites configurados de tiempo y píxeles de la operación conservan la categoría estructurada de fallo de presupuesto

Salida y comportamiento transaccional

El resultado reporta engine, recognizedPages, skippedPages, acceptedWords y droppedWords; el campo engine contiene el nombre descriptivo del adaptador nativo

minimumConfidence debe ser un número de 0 a 1, y skipPagesWithText y replaceExisting deben ser booleanos JSON

Las palabras Unicode aceptadas se convierten en texto invisible con mapeos ToUnicode y geometría de la página de origen; la imagen del escaneo permanece en la salida y el archivo fuente queda sin cambios salvo que el caller publique intencionalmente sobre ese mismo path

Los file jobs preservan un destino existente ante fallos y publican mediante un archivo de staging en el mismo directorio; las mutaciones de la C ABI se confirman solo cuando la entrega de bytes PDF y del resultado JSON tiene éxito, con rollback ante fallo y descarte a cargo del caller de los bytes ya entregados

Aceptación

Tests/Delphi/Run-JobOCRTests.ps1 ejecuta cuatro perfiles de dispatch de adaptadores, configuración malformada, presupuestos de píxeles y tiempo transcurrido, rechazo de palabras parciales, fallo de proceso, timeout y preservación de destino/fuente en Win32 y Win64

Suministrar ejecutable y paths de modelo reales de Tesseract ejercita reconocimiento en vivo; los lectores independientes pypdf y MuPDF verifican el texto Unicode buscable y los píxeles visibles del escaneo sin cambios, mientras que la comprobación opcional de la DLL real de la ABI Win64 verifica callbacks parciales y rollback de operaciones fallidas

Consulta operaciones de documento, adaptadores Tesseract, modelos locales RapidOCR, bibliotecas nativas RapidOCR y capas de texto OCR buscable