Tutorial de como obter o texto de uma fatura em C#
Como fazer OCR de Comprovante em Tesseract
- Instale a biblioteca C# OCR para comprovantes com Tesseract
- Explore os recursos da rica biblioteca C# para realizar OCR em comprovantes
- Extraia dados do comprovante com Tesseract
- Procure no resultado do texto extraído por dados específicos
- Leia o valor dos códigos de barras na imagem do comprovante
1. IronOCR, Uma API de Reconhecimento Óptico de Caracteres
IronOCR é uma biblioteca OCR que pode ser usada para reconhecer dados de texto de imagens para extração de informações, incluindo OCR de comprovantes. Ela é construída com base no motor OCR Tesseract, considerado um dos motores OCR mais precisos disponíveis hoje para reconhecimento de comprovantes. IronOCR pode ler informações-chave de diferentes tipos de documentos, incluindo formatos PNG, JPG, TIFF, JSON e PDF, e pode reconhecer texto em vários idiomas.
Um dos recursos principais do IronOCR que o torna particularmente útil para OCR de comprovantes é sua capacidade de detectar automaticamente a orientação do texto, mesmo se a imagem foi girada ou inclinada. Isso é essencial para o reconhecimento preciso de texto em uploads de comprovantes e extração de dados, uma vez que os comprovantes geralmente contêm muita informação e podem estar dobrados ou amassados, fazendo com que o texto fique inclinado.
2. Recursos do IronOCR
- OCR em C# usa Aprendizagem Profunda para escanear e reconhecer textos a partir de imagens, documentos digitalizados e PDFs.
- OCR .NET suporta mais de 125 idiomas globais.
- IronOCR pode ler texto de imagens em muitos formatos de arquivo, incluindo PNG, JPG, TIFF e PDF.
- Texto, dados estruturados, saída em JSON ou PDFs pesquisáveis podem ser produzidos a partir das informações extraídas.
- IronOCR suporta as versões .NET 5, 6 e 7 (Core, Framework, e Standard).
- IronOCR divide a entrada em diferentes imagens com base em regiões de texto. Ele usa Visão Computacional para identificar áreas que contêm elementos textuais.
3. Criando um Novo Projeto no Visual Studio
Abra o Visual Studio e vá para o menu Arquivo. Selecione "Novo Projeto" e depois escolha Aplicação de Console.
Insira o nome do projeto e selecione o caminho na caixa de texto apropriada. Em seguida, clique no botão Criar. Selecione o .NET Framework necessário, como mostrado na captura de tela abaixo:

A estrutura do projeto para a Aplicação de Console será gerada agora. Uma vez finalizado, ele abrirá o arquivo Program.cs, no qual você pode escrever e executar código-fonte.

4. Instalar IronOCR
No Visual Studio, você pode integrar o IronOCR ao seu projeto C# facilmente. IronOCR oferece várias maneiras de integrar a um projeto C# .NET. Aqui, discutiremos uma delas: Instalando IronOCR usando o Gerenciador de Pacotes NuGet.
No Visual Studio, acesse Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes.

Um novo console aparecerá na parte inferior da janela do Visual Studio. Digite o comando abaixo no console e pressione enter.
Install-Package IronOcr
IronOCR será instalado em apenas alguns segundos.
5. Extração de Dados de Comprovantes Usando o IronOCR
IronOCR é uma poderosa biblioteca OCR que pode ser usada para extrair e acessar dados detalhados de comprovantes. Com o IronOCR, você pode converter uma imagem de um comprovante em texto legível por máquina que pode ser facilmente analisado e processado sem comprometer a privacidade dos dados.
Aqui está um exemplo de como você pode usar o IronOCR para extrair texto de um comprovante:
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Read the OCR result
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
string recognizedText = ocrResult.Text;
// Output the recognized text to the console
Console.WriteLine(recognizedText);
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Read the OCR result
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
string recognizedText = ocrResult.Text;
// Output the recognized text to the console
Console.WriteLine(recognizedText);
}
}
}
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract As New IronTesseract()
' Load the receipt image
Using ocrInput As New OcrInput("ocr.png")
' Read the OCR result
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
Dim recognizedText As String = ocrResult.Text
' Output the recognized text to the console
Console.WriteLine(recognizedText)
End Using
End Sub
End Class
Consulte o tutorial de Leitura de Texto de Imagem para mais detalhes sobre como o IronOCR lê texto de imagens usando C#.
A saída do código acima:
- LOGO SHOP
- LOREM IPSUM
- DOLOR SIT AMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEM NISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISI RISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00
6. Extração de Dados Específicos a partir de Imagem de Comprovante Usando o IronOCR
IronOCR permite que os desenvolvedores recuperem informações cruciais de comprovantes digitalizados, como valores de impostos e nomes de comerciantes.
Aqui está um exemplo demonstrando como extrair o valor total de um comprovante:
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Set the language for OCR
ocrTesseract.Language = OcrLanguage.English;
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Optimize the input image for OCR
ocrInput.DeNoise(true);
ocrInput.Contrast();
ocrInput.EnhanceResolution();
ocrInput.ToGrayScale();
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Search for the total amount in the OCR result
var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
Console.WriteLine("Total Amount: " + totalAmount);
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
IronTesseract ocrTesseract = new IronTesseract();
// Set the language for OCR
ocrTesseract.Language = OcrLanguage.English;
// Load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
// Optimize the input image for OCR
ocrInput.DeNoise(true);
ocrInput.Contrast();
ocrInput.EnhanceResolution();
ocrInput.ToGrayScale();
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Search for the total amount in the OCR result
var totalAmount = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
Console.WriteLine("Total Amount: " + totalAmount);
}
}
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract As New IronTesseract()
' Set the language for OCR
ocrTesseract.Language = OcrLanguage.English
' Load the receipt image
Using ocrInput As New OcrInput("ocr.png")
' Optimize the input image for OCR
ocrInput.DeNoise(True)
ocrInput.Contrast()
ocrInput.EnhanceResolution()
ocrInput.ToGrayScale()
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Search for the total amount in the OCR result
Dim totalAmount = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
Console.WriteLine("Total Amount: " & totalAmount)
End Using
End Sub
End Class
Graças às múltiplas configurações fornecidas pela classe OcrInput, é possível otimizar a imagem de entrada para melhor precisão no processo de OCR.
Entrada

Saída
- Total 16.5
7. Leia Códigos de Barras em Recibos
IronOCR pode ser usado para ler códigos de barras em recibos, bem como texto. Para ler códigos de barras em recibos, você precisará usar a classe BarcodeReader em combinação com o método ReadBarCodes.
Aqui está um exemplo de como ler códigos de barras:
using IronOcr;
using System;
class Program
{
static void Main()
{
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Load the receipt image with a barcode
using (var ocrInput = new OcrInput("b.png"))
{
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output the barcode values to the console
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
using IronOcr;
using System;
class Program
{
static void Main()
{
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Load the receipt image with a barcode
using (var ocrInput = new OcrInput("b.png"))
{
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output the barcode values to the console
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
}
}
Imports IronOcr
Imports System
Friend Class Program
Shared Sub Main()
Dim ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
' Load the receipt image with a barcode
Using ocrInput As New OcrInput("b.png")
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Output the barcode values to the console
For Each barcode In ocrResult.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End Using
End Sub
End Class
Imagem de entrada

Texto de saída

8. Conclusão
O artigo acima explica o processo de instalação e uso do IronOCR em um projeto C# para extrair dados de recibos, com exemplos de trechos de código fornecidos.
Por favor, leia o tutorial sobre leitura de texto de imagens.
IronOCR é parte da Iron Suite, que inclui cinco diferentes bibliotecas .NET para manipulação de documentos e imagens. Você pode comprar toda a Iron Suite pelo preço de apenas duas licenças IronOCR.
Experimente o IronOCR em seus aplicativos de produção com uma avaliação gratuita.
Perguntas frequentes
Como posso usar o IronOCR para realizar OCR em uma imagem de recibo em C#?
Você pode usar o IronOCR para realizar OCR em uma imagem de recibo, carregando a imagem na classe OcrInput e chamando o método Read para extrair dados de texto, como listas de itens e valores totais.
Quais são as vantagens de usar o IronOCR em vez do Tesseract para processamento de faturas?
O IronOCR oferece maior precisão, suporta mais de 125 idiomas e inclui recursos como detecção automática de orientação de texto e capacidades de aprendizado profundo. Além disso, é mais fácil de integrar com projetos C# usando o Gerenciador de Pacotes NuGet.
Como faço para integrar o IronOCR em um projeto do Visual Studio?
Para integrar o IronOCR em um projeto do Visual Studio, utilize o Gerenciador de Pacotes NuGet. Navegue até Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes e execute Install-Package IronOcr para adicionar a biblioteca ao seu projeto.
O IronOCR consegue lidar com vários idiomas no OCR de recibos?
Sim, o IronOCR é capaz de lidar com vários idiomas, suportando mais de 125 idiomas globais, o que o torna ideal para processar recibos com texto multilíngue.
Como o IronOCR melhora a precisão do reconhecimento de texto em recibos?
O IronOCR aprimora a precisão do reconhecimento de texto por meio de recursos como aprendizado profundo, detecção automática da orientação do texto e a capacidade de otimizar imagens usando a classe OcrInput para obter melhores resultados de OCR.
É possível extrair listas detalhadas de recibos usando o IronOCR?
Sim, o IronOCR pode ser usado para extrair listas detalhadas de recibos, processando os dados de texto e identificando os itens por meio de correspondência de padrões após a execução do OCR.
Como o IronOCR realiza a leitura de códigos de barras em recibos?
O IronOCR realiza a leitura de códigos de barras utilizando a classe BarcodeReader e o método ReadBarCodes para escanear e decodificar os códigos de barras presentes nos recibos.
Quais formatos de arquivo o IronOCR consegue processar para OCR de recibos?
O IronOCR consegue processar diversos formatos de arquivo para OCR de recibos, incluindo PNG, JPG, TIFF e PDF, o que o torna versátil para diferentes tipos de entrada.
Quais são os passos envolvidos na configuração do IronOCR para processamento de faturas em C#?
A configuração do IronOCR para processamento de faturas envolve a instalação da biblioteca via NuGet, a configuração do OcrInput com a imagem do recibo e o uso do método Read para extrair os dados de texto. Você também pode usar os recursos da biblioteca para aumentar a precisão e extrair dados específicos, como totais.



