OCR externo em trabalhos JSON e ABI C

A operação ocr.layer aceita builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli e rapidocr-dll; omitir engine preserva o default incorporado de ASCII

A descoberta de capacidades lista estes adaptadores suportados, sem afirmar que programas externos, bibliotecas, dados de linguagens ou modelos ONNX estão instalados no host de execução

Exemplo 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}}

Coloque este objeto no array operations de um trabalho de ficheiros e acrescente caminhos input e output, ou passe-o diretamente a hpdf_document_execute_json_v1 com um handle carregado e callbacks binários/de resultados

MotorengineOptions obrigatóriasengineOptions opcionais
builtin-asciiNenhumaengineOptions tem de estar ausente ou ser um objeto vazio
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

Opções e recursos locais

Os motores externos exigem uma engineOptions explícita com valor de objeto; chaves desconhecidas, tipos JSON errados, caminhos ou strings de linguagens contendo NUL e valores obrigatórios vazios são rejeitados

Tesseract tem por defeito language=eng, pageSegMode=3 e engineMode=3; os modos de segmentação 0 e 2 não reconhecem texto e são rejeitados, enquanto os restantes modos até 13 são aceites

engineMode aceita 0 a 3; os ficheiros de trained data têm de suportar o modo escolhido, e expressões de linguagens multilingues do Tesseract como eng+fra exigem os modelos locais correspondentes

O RapidOCR CLI usa os nomes de modelos THPDFRapidOCROptions.Default nativos e define ambos os limites de threads como 1 por defeito; aceita caminhos explícitos de dicionários e de tipos de letra, e a ponte configurada tem de implementar o contrato local de TSV

O RapidOCR DLL começa com THPDFRapidOCRDLLOptions.ForLanguage(language), com default ch; os perfis de linguagens selecionam o modelo de reconhecimento, o dicionário e a direção de leitura, e opções explícitas podem sobrepor essas seleções

Os nomes de ficheiros de modelos resolvem-se sob modelDirectory de acordo com os adaptadores nativos; o bitness da biblioteca tem de corresponder ao processo host, enquanto um motor CLI corre como um processo local separado

Forneça e selecione explicitamente estes recursos; a operação não instala motores, não descarrega modelos, não procura executáveis arbitrários nem usa um serviço OCR remoto

Orçamentos e cancelamento

timeoutMilliseconds tem por defeito 60,000 e aceita inteiros de 1 a 3,600,000; o timeout efetivo do adaptador é limitado por budget.timeMilliseconds

maxPixels tem por defeito 16,777,216 e aceita inteiros de 1 a 67,108,864; o teto efetivo dele é o mínimo entre o valor pedido, budget.pixels e budget.memoryBytes / 16

O teto efetivo de píxeis do motor também limita a renderização de páginas OCR antes do reconhecimento; os orçamentos de palavras, de conteúdo e de texto UTF-16 são limitados pela quota de memória da operação

Estes limites delimitam buffers configurados e recursos da operação; a alocação de modelos de DLLs externas não constitui uma quota estrita de RSS do processo

Chamadas nativas tomam emprestado Document.OperationCancellationToken para renderização e reconhecimento; o cancelamento de callbacks C é consultado nos checkpoints cooperativos de operações, de entrada e de saída, e um motor externo em execução pode continuar até ao timeout dele ou ao próximo checkpoint de callbacks

Falhas locais de CLIs, saída TSV inválida ou incompleta e timeouts de adaptadores rejeitam a operação; o tempo configurado da operação e os limites de píxeis mantêm a categoria estruturada de falhas de orçamento

Saída e comportamento transacional

O resultado reporta engine, recognizedPages, skippedPages, acceptedWords e droppedWords; o campo engine contém o nome descritivo do adaptador nativo

minimumConfidence tem de ser um número de 0 a 1, e skipPagesWithText e replaceExisting têm de ser Booleans JSON

Palavras Unicode aceites tornam-se texto invisível com mapeamentos ToUnicode e geometria de páginas fonte; a imagem de digitalização permanece na saída, e o ficheiro fonte permanece inalterado a menos que quem chama publique intencionalmente nesse mesmo caminho

Trabalhos de ficheiros preservam um destino existente em caso de falha e publicam através de um ficheiro de staging no mesmo diretório; mutações da ABI C confirmam depois de a entrega de bytes PDF e do resultado JSON ter sucesso, com rollback em falha e descarte por quem chama de bytes já entregues

Aceitação

Tests/Delphi/Run-JobOCRTests.ps1 corre quatro perfis de despacho de adaptadores, configuração malformada, orçamentos de píxeis e de tempo, rejeição de palavras parciais, falha de processos, timeout e preservação de destinos/fontes em Win32 e Win64

Fornecer caminhos reais de executáveis e de modelos do Tesseract exercita reconhecimento vivo; leitores independentes de pypdf e MuPDF verificam texto pesquisável Unicode e píxeis visíveis de digitalização inalterados, enquanto a verificação opcional real da DLL da ABI Win64 verifica callbacks parciais e rollback de operações falhadas

Veja as operações de documentos, os adaptadores Tesseract, os modelos locais RapidOCR, as bibliotecas nativas RapidOCR e as camadas de texto OCR pesquisáveis