Núcleo API
API de núcleo
Esta página cobre o ciclo de vida dos objetos e o comportamento de exceções dos quatro tipos principais: AsposeOcr, OcrInput, OcrOutput e RecognitionResult.
Ciclo de vida do OcrInput
OcrInput implementa IDisposable e deve ser criado em uma declaração using. Seu construtor recebe um InputType (InputType.SingleImage ou InputType.PDF), e OcrInput.Add(string) enfileira um caminho de arquivo por vez — a mesma instância OcrInput pode conter vários arquivos desse mesmo tipo de entrada.
using Aspose.OCR;
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Reconhecendo e lendo OcrOutput
AsposeOcr.Recognize(OcrInput) retorna um OcrOutput, que é um List<RecognitionResult> — indexável como qualquer lista, com um RecognitionResult por imagem (para InputType.SingleImage, um por arquivo adicionado) ou por página PDF (para InputType.PDF).
var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];RecognitionResult e o Tipo LinesResult Aninhado
RecognitionResult.LinesResult é uma classe aninhada — referencie-a como RecognitionResult.LinesResult, não como um tipo independente. Cada RecognitionResult expõe:
RecognitionText— o texto reconhecido completo para essa imagem ou página, com linhas unidas por quebras de linha.RecognitionLinesResult— umList<RecognitionResult.LinesResult>, uma entrada por linha de texto detectada, cada uma comTextInLine(o texto da linha) eLine(umSystem.Drawing.Rectangleque fornece as coordenadas de pixel dessa linha na imagem de origem).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
System.Drawing.Rectangle bounds = line.Line;
Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}Exceções
AsposeOcr.Recognize(OcrInput) valida sua entrada antes de executar o reconhecimento:
| Condition | Exception |
|---|---|
input é null | ArgumentNullException |
O InputType de input não é SingleImage nem PDF | NotSupportedException |
Um caminho adicionado via OcrInput.Add() não existe no disco | FileNotFoundException |
Essas verificações são executadas antes de qualquer inferência de modelo, portanto uma entrada inválida falha imediatamente em vez de após uma passagem parcial de reconhecimento.
Dicas e Melhores Práticas
OcrOutputestá vazio (Count == 0) seOcrInputnão tem arquivos adicionados — verifiqueCountantes da indexação.RecognitionResult.LinesResultestá aninhado dentro deRecognitionResult; o nome do tipo de nível superiorLinesResultsozinho não é um tipo resolvível fora desse aninhamento.
Problemas Comuns
| Problema | Causa | Corrigir |
|---|---|---|
ArgumentNullException em Recognize() | null foi passado em vez de um OcrInput | Sempre construa um OcrInput antes de chamar Recognize() |
NotSupportedException em Recognize() | OcrInput foi construído com um tipo de entrada diferente de SingleImage/PDF | Somente InputType.SingleImage e InputType.PDF são válidos |
FileNotFoundException em Recognize() | Um caminho enfileirado não existe | Valide os caminhos dos arquivos antes de chamar OcrInput.Add() |
FAQ
É RecognitionResult.LinesResult uma classe de nível superior própria?
Não — está aninhado dentro de RecognitionResult. Referencie-o como RecognitionResult.LinesResult.
O OcrOutput garante a ordem das páginas para PDFs?
Sim — para InputType.PDF, OcrOutput devolve um RecognitionResult por página na ordem original.
O que acontece se eu chamar Recognize() com um OcrInput vazio?
Ele retorna um OcrOutput com Count == 0 ao invés de lançar.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
AsposeOcr.Recognize(OcrInput) | Valida e reconhece; lança ArgumentNullException, NotSupportedException ou FileNotFoundException em entrada inválida |
OcrInput.OcrInput(InputType) | Constrói um contêiner de entrada para um tipo de entrada |
OcrInput.Add(string) | Enfileira um caminho de arquivo |
OcrInput.Dispose() | Libera recursos (via IDisposable) |
OcrOutput | List<RecognitionResult> retornado por Recognize() |
RecognitionResult.RecognitionText | Texto reconhecido completo para uma imagem/página |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Texto reconhecido para uma linha |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle caixa delimitadora para uma linha |