Como Trabalhar com o Aspose.OCR FOSS Core API em .NET
Aspose.OCR FOSS para .NET reconhece texto em imagens raster e documentos PDF através de um pequeno core API: AsposeOcr, OcrInput, OcrOutput e RecognitionResult. Este guia mostra como instalar o pacote e usar esse core API de ponta a ponta.
Guia passo a passo
Etapa 1: Instalar o pacote
dotnet add package Aspose.OCR.FOSSEtapa 2: Importar o namespace
Adicione o namespace Aspose.OCR a qualquer arquivo fonte que chame AsposeOcr, OcrInput ou RecognitionResult:
using Aspose.OCR;Este único namespace expõe AsposeOcr, OcrInput, OcrOutput, InputType e RecognitionResult.
Etapa 3: Construir um OcrInput e Reconhecer uma Imagem
Construa um AsposeOcr, construa um OcrInput com InputType.SingleImage, enfileire um arquivo com OcrInput.Add() e chame AsposeOcr.Recognize().
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);Etapa 4: Ler linhas individuais e caixas delimitadoras
Cada entrada RecognitionResult.LinesResult em RecognitionLinesResult contém o texto de uma linha (TextInLine) e sua caixa delimitadora de coordenadas de pixel (Line).
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
System.Drawing.Rectangle bounds = line.Line;
Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}Etapa 5: Reconhecer um PDF multipágina
Para InputType.PDF, AsposeOcr.Recognize() devolve um RecognitionResult por página, na ordem de origem.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("document.pdf");
OcrOutput output = api.Recognize(pdfInput);
foreach (RecognitionResult page in output)
{
Console.WriteLine(page.RecognitionText);
}Problemas Comuns e Correções
NotSupportedException ao chamar Recognize(). O OcrInput foi construído com um tipo de entrada diferente de InputType.SingleImage or InputType.PDF. Apenas esses dois tipos de entrada são suportados.
FileNotFoundException ao chamar Recognize(). Um caminho adicionado via OcrInput.Add() não existe no disco. Valide o caminho antes de chamar Add().
ArgumentNullException ao chamar Recognize(). null foi passado em vez de um OcrInput instância. Sempre construa um OcrInput primeiro.
Empty RecognitionLinesResult. Nenhuma linha de texto foi detectada — confirme que a imagem de origem contém texto legível, não rotacionado, em script latino.
Perguntas Frequentes
O OcrOutput preserva a ordem dos arquivos?
Sim. OcrOutput é uma lista de RecognitionResult, um por imagem (ou por página de PDF), na ordem em que os arquivos foram adicionados via OcrInput.Add().
Preciso descartar OcrInput?
Sim — OcrInput implementa IDisposable. Use uma declaração using ou chame Dispose() explicitamente quando o reconhecimento for concluído.
Posso processar imagens e PDFs no mesmo OcrInput?
Não — cada OcrInput é construído com um único InputType (SingleImage ou PDF) e aceita apenas arquivos desse tipo.