IRONSOFTWAREHOME
UTILIZANDO O IRONOCR

API de digitalização de recibos: Extraia dados de recibos usando C# e IronOCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 8 de maio de 2026

APIs de digitalização de recibos automatizam a extração de dados de recibos usando tecnologia OCR, reduzindo significativamente erros de entrada manual e acelerando o processamento. Este guia mostra como usar o IronOCR em C# para extrair com precisão nomes de fornecedores, datas, itens, preços e totais de imagens de recibos, com pré-processamento de imagem embutido e suporte para múltiplos formatos.

Por Que Escolher o IronOCR para Digitalização de Recibos?

O IronOCR é uma biblioteca OCR flexível que oferece extração de texto confiável de documentos escaneados, imagens e PDFs. Com algoritmos avançados, visão computacional e modelos de aprendizado de máquina, o IronOCR garante alta precisão mesmo em cenários desafiadores. A biblioteca suporta múltiplos idiomas e estilos de fonte, tornando-a adequada para aplicações globais. Ao incorporar o IronOCR em suas aplicações, você pode automatizar a entrada de dados e a análise de texto, aumentando a produtividade.

Como o IronOCR Extrai Texto de Imagens de Recibos?

O IronOCR recupera texto de documentos, fotografias, capturas de tela e transmissões ao vivo de câmera como respostas JSON. Usando algoritmos sofisticados e aprendizado de máquina, o IronOCR analisa dados de imagem, reconhece caracteres e os converte em texto legível por máquina. A biblioteca usa a tecnologia Tesseract 5 aprimorada com melhorias proprietárias para obter maior precisão.

Por Que o IronOCR é Excelente para Processamento de Recibos?

O IronOCR se destaca ao lidar com escaneamentos de baixa qualidade, diferentes formatos de recibos e orientações distintas. Filtros embutidos de pré-processamento de imagem melhoram automaticamente a qualidade da imagem antes do processamento, garantindo resultados ótimos mesmo em recibos amassados ou desbotados.

O Que Eu Preciso para Usar o IronOCR?

Antes de trabalhar com o IronOCR, certifique-se de que estes pré-requisitos estejam em vigor:

Quais Ambientes de Desenvolvimento são Suportados?

  1. Ambiente de Desenvolvimento: Instale um IDE adequado como o Visual Studio. O IronOCR suporta Windows, Linux, macOS, Azure e AWS.

Quais Habilidades de Programação São Necessárias?

  1. Conhecimento de C#: Compreensão básica de C# ajuda a modificar exemplos de código. IronOCR fornece exemplos simples e documentação da API.

Quais dependências de software são necessárias?

  1. Instalação do IronOCR: Instale via Gerenciador de Pacotes NuGet. Dependências específicas da plataforma podem ser necessárias.

Uma chave de licença é necessária?

  1. Chave de Licença (Opcional): Teste gratuito disponível; uso em produção requer uma licença.

Como criar um novo projeto do Visual Studio para escaneamento de recibo?

Como iniciar um novo projeto no Visual Studio?

Abra o Visual Studio e vá para Arquivos, depois passe o mouse sobre Novo e clique em Projeto.

IDE do Visual Studio com o menu Arquivo expandido mostrando a opção 'Novo > Projeto' destacada e o editor de código exibindo código C# para carregar uma planilha do Excel Imagem de Novo Projeto

Qual modelo de projeto devo escolher?

Selecione Aplicativo de Console e clique em Avançar. Este modelo é ideal para aprender IronOCR antes de implementar em aplicações web.

Caixa de diálogo 'Criar um novo projeto' do Visual Studio mostrando o modelo de Aplicativo de Console selecionado com opções de plataforma para Windows, Linux e macOS Aplicativo de Console

Como devo nomear meu projeto de escaneamento de recibo?

Escreva o nome e localização do seu projeto, depois clique em Avançar. Escolha um nome descritivo como "ReceiptScannerAPI".

Tela de configuração de novo projeto do Visual Studio para criar um Aplicativo de Console chamado 'IronOCR' com C# selecionado e configurações de solução exibidas Configuração do projeto

Qual Versão do .NET Framework Devo Selecionar?

Selecione .NET 5.0 ou posterior para compatibilidade ideal, então clique em Criar.

Caixa de diálogo 'Informações Adicionais' do Visual Studio mostrando a configuração do Aplicativo de Console com .NET 5.0 selecionado como o framework alvo e opções de plataforma para Linux, macOS, Windows e Console Estrutura Alvo

Como instalar o IronOCR no meu projeto?

Duas formas simples de instalação estão disponíveis:

Como usar o método do Gerenciador de Pacotes NuGet?

Vá para Ferramentas > Gerenciador de Pacotes NuGet > Gerenciar Pacotes NuGet para a Solução

Caixa de diálogo de configurações do Gerenciador de Pacotes NuGet do Visual Studio com a configuração de fontes de pacotes, juntamente com uma estrutura de projeto C# no explorador de soluções Gerenciador de Pacotes NuGet

Procure por IronOCR e instale o pacote. Para recibos em idiomas não-ingleses, instale pacotes específicos de idiomas.

Gerenciador de Pacotes NuGet no Visual Studio exibindo pacotes IronOCR instalados, incluindo a biblioteca principal e pacotes OCR específicos para idiomas como Árabe, Hebraico e Espanhol IronOCR

Como usar a instalação pela linha de comando?

  1. Vá para Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes

  2. Insira este comando:

    PM > Install-Package IronOcr

    Janela de Console do Gerenciador de Pacotes do Visual Studio exibindo o comando NuGet 'PM> Install-Package IronOcr' sendo executado para um projeto chamado 'Criar PDF' Console do Gerenciador de Pacotes

Como posso extrair rapidamente dados de recibos com IronOCR?

Extraia dados de recibos com apenas algumas linhas de código:

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copie e execute este trecho de código.

    using IronOcr;
    using System;
    
    var ocr = new IronTesseract();
    
    // Configure for receipt scanning
    ocr.Configuration.ReadBarCodes = true;
    ocr.Configuration.WhiteListCharacters = "0123456789.$,ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz% ";
    
    using (var input = new OcrInput(@"receipt.jpg"))
    {
        // Apply automatic image enhancement
        input.DeNoise();
        input.Deskew();
        input.EnhanceResolution(225);
        
        // Extract text from receipt
        var result = ocr.Read(input);
        
        // Display extracted text and confidence
        Console.WriteLine($"Extracted Text:\n{result.Text}");
        Console.WriteLine($"\nConfidence: {result.Confidence}%");
    }
    C#
  3. 3Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
    arrow pointer

Como extraio dados estruturados de imagens de recibos?

IronOCR extrai itens de linha, preços, impostos e totais de vários tipos de documentos. A biblioteca suporta PDFs, TIFFs de múltiplas páginas, e vários formatos de imagem.

using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class ReceiptScanner
{
    static void Main()
    {
        var ocr = new IronTesseract();
        
        // Configure OCR for optimal receipt reading
        ocr.Configuration.WhiteListCharacters = "0123456789.$,ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz% ";
        ocr.Configuration.BlackListCharacters = "~`@#*_}{][|\\";
        ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
        
        // Load the image of the receipt
        using (var input = new OcrInput(@"r2.png"))
        {
            // Apply image enhancement filters
            input.Deskew(); // Fix image rotation
            input.EnhanceResolution(225); // Optimal DPI for receipts
            input.DeNoise(); // Remove background noise
            input.Sharpen(); // Improve text clarity
            
            // Perform OCR on the input image
            var result = ocr.Read(input);

            // Regular expression patterns to extract relevant details from the OCR result
            var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
            var pricePattern = @"\$\d+(\.\d{2})?";
            var datePattern = @"\d{1,2}[/-]\d{1,2}[/-]\d{2,4}";
            
            // Variables to store extracted data
            var descriptions = new List<string>();
            var unitPrices = new List<decimal>();
            var taxes = new List<decimal>();
            var amounts = new List<decimal>();
            
            var lines = result.Text.Split('\n');
            foreach (var line in lines)
            {
                // Match each line against the description pattern
                var descriptionMatch = Regex.Match(line, descriptionPattern);
                if (descriptionMatch.Success)
                {
                    descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
                    unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));
                    
                    // Calculate tax and total amount for each item
                    var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
                    taxes.Add(tax);
                    amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
                }
                
                // Extract date if found
                var dateMatch = Regex.Match(line, datePattern);
                if (dateMatch.Success)
                {
                    Console.WriteLine($"Receipt Date: {dateMatch.Value}");
                }
            }
            
            // Output the extracted data
            for (int i = 0; i < descriptions.Count; i++)
            {
                Console.WriteLine($"Description: {descriptions[i]}");
                Console.WriteLine($"Quantity: 1.00 Units");
                Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
                Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
                Console.WriteLine($"Amount: ${amounts[i]:0.00}");
                Console.WriteLine("-----------------------");
            }
            
            // Calculate and display totals
            var subtotal = unitPrices.Sum();
            var totalTax = taxes.Sum();
            var grandTotal = amounts.Sum();
            
            Console.WriteLine($"\nSubtotal: ${subtotal:0.00}");
            Console.WriteLine($"Total Tax: ${totalTax:0.00}");
            Console.WriteLine($"Grand Total: ${grandTotal:0.00}");
        }
    }
}

Quais técnicas melhoram a precisão do escaneamento de recibo?

Técnicas-chave para escaneamento preciso de recibos:

Console de depuração do Visual Studio exibindo dados de fatura extraídos de um PDF, mostrando itens com descrições, quantidades, preços, impostos e totais Saída

Como extraio o conteúdo completo do recibo?

Extraia todo o conteúdo do recibo com formatação preservada:

using IronOcr;
using System;
using System.Linq;

class WholeReceiptExtractor
{
    static void Main()
    {
        var ocr = new IronTesseract();
        
        // Configure for receipt scanning
        ocr.Configuration.ReadBarCodes = true; // Enable barcode detection
        ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5; // Use latest engine
        ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm; // Best accuracy
        
        using (var input = new OcrInput(@"r3.png"))
        {
            // Apply automatic image correction
            input.WithTitle("Receipt Scan");
            
            // Use computer vision to find text regions
            var textRegions = input.FindTextRegions();
            Console.WriteLine($"Found {textRegions.Count()} text regions");
            
            // Apply optimal filters for receipt processing
            input.ApplyOcrInputFilters();
            
            // Perform OCR on the entire receipt
            var result = ocr.Read(input);
            
            // Display extracted text
            Console.WriteLine("=== EXTRACTED RECEIPT TEXT ===");
            Console.WriteLine(result.Text);
            
            // Get detailed results
            Console.WriteLine($"\n=== OCR STATISTICS ===");
            Console.WriteLine($"OCR Confidence: {result.Confidence:F2}%");
            Console.WriteLine($"Pages Processed: {result.Pages.Length}");
            Console.WriteLine($"Paragraphs Found: {result.Paragraphs.Length}");
            Console.WriteLine($"Lines Detected: {result.Lines.Length}");
            Console.WriteLine($"Words Recognized: {result.Words.Length}");
            
            // Extract any barcodes found
            if (result.Barcodes.Any())
            {
                Console.WriteLine("\n=== BARCODES DETECTED ===");
                foreach(var barcode in result.Barcodes)
                {
                    Console.WriteLine($"Type: {barcode.Type}");
                    Console.WriteLine($"Value: {barcode.Value}");
                    Console.WriteLine($"Location: X={barcode.X}, Y={barcode.Y}");
                }
            }
            
            // Save as searchable PDF
            result.SaveAsSearchablePdf("receipt_searchable.pdf");
            Console.WriteLine("\nSearchable PDF saved as: receipt_searchable.pdf");
            
            // Export as hOCR for preservation
            result.SaveAsHocrFile("receipt_hocr.html");
            Console.WriteLine("hOCR file saved as: receipt_hocr.html");
        }
    }
}

Console de depuração do Visual Studio exibindo dados de fatura extraídos de um PDF, mostrando itens com descrições, quantidades, preços, impostos e totais Saída da API de digitalização de recibo

Quais recursos avançados melhoram a digitalização de recibos?

IronOCR oferece vários recursos avançados que melhoram significativamente a precisão da digitalização de recibos:

Quais idiomas o IronOCR suporta?

  1. Suporte a vários idiomas: Procese recibos em 125+ idiomas ou múltiplos idiomas em um documento.

O IronOCR pode ler códigos de barras em recibos?

  1. Leitura de código de barras: Detecta e lê automaticamente códigos de barras e códigos QR.

Como a visão computacional ajuda no processamento de recibos?

  1. Visão Computacional: Use detecção de texto avançada para localizar regiões de texto antes do OCR.

Posso treinar modelos personalizados para formatos únicos de recibo?

  1. Treinamento Personalizado: Treine fontes personalizadas para formatos de recibo especializados.

Como posso melhorar o desempenho para processamento em massa?

  1. Otimização de Desempenho: Implemente multithreading e processamento assíncrono para operações em massa.
// Example: Async receipt processing for high-volume scenarios
using IronOcr;
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.IO;

class BulkReceiptProcessor
{
    static async Task Main()
    {
        var ocr = new IronTesseract();
        
        // Configure for optimal performance
        ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
        ocr.Configuration.UseMultiThreading = true;
        ocr.Configuration.ProcessorCount = Environment.ProcessorCount;
        
        // Process multiple receipts asynchronously
        var receiptFiles = Directory.GetFiles(@"C:\Receipts\", "*.jpg");
        var tasks = new List<Task<OcrResult>>();
        
        foreach (var file in receiptFiles)
        {
            tasks.Add(ProcessReceiptAsync(ocr, file));
        }
        
        // Wait for all receipts to be processed
        var results = await Task.WhenAll(tasks);
        
        // Aggregate results
        decimal totalAmount = 0;
        foreach (var result in results)
        {
            // Extract total from each receipt
            var match = System.Text.RegularExpressions.Regex.Match(
                result.Text, @"Total:?\s*\$?(\d+\.\d{2})");
            
            if (match.Success && decimal.TryParse(match.Groups[1].Value, out var amount))
            {
                totalAmount += amount;
            }
        }
        
        Console.WriteLine($"Processed {results.Length} receipts");
        Console.WriteLine($"Combined total: ${totalAmount:F2}");
    }
    
    static async Task<OcrResult> ProcessReceiptAsync(IronTesseract ocr, string filePath)
    {
        using (var input = new OcrInput(filePath))
        {
            // Apply preprocessing
            input.DeNoise();
            input.Deskew();
            input.EnhanceResolution(200);
            
            // Process asynchronously
            return await ocr.ReadAsync(input);
        }
    }
}

Como lido com desafios comuns de digitalização de recibos?

A digitalização de recibos apresenta desafios únicos que o IronOCR ajuda a resolver:

Como lido com imagens de recibos de baixa qualidade?

  • Imagens de baixa qualidade: Use o Assistente de Filtro para encontrar automaticamente as configurações ótimas de pré-processamento.

O que fazer com recibos enviesados ou girados?

Como processo recibos apagados ou com baixo contraste?

O IronOCR pode lidar com recibos amassados ou danificados?

Como gerencio diferentes formatos e layouts de recibos?

Os formatos de recibo variam amplamente entre os varejistas. IronOCR oferece abordagens flexíveis:

using IronOcr;
using System;
using System.Collections.Generic;
using System.Linq;

class ReceiptLayoutHandler
{
    static void Main()
    {
        var ocr = new IronTesseract();
        
        // Configure for different receipt layouts
        ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
        ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
        
        using (var input = new OcrInput(@"complex_receipt.jpg"))
        {
            // Apply region-specific processing
            var cropRegion = new CropRectangle(x: 0, y: 100, width: 400, height: 800);
            input.AddImage(@"complex_receipt.jpg", cropRegion);
            
            // Process with confidence tracking
            var result = ocr.Read(input);
            
            // Parse using confidence scores
            var highConfidenceLines = result.Lines
                .Where(line => line.Confidence > 85)
                .Select(line => line.Text)
                .ToList();
            
            // Extract data with fallback strategies
            var total = ExtractTotal(highConfidenceLines) 
                        ?? ExtractTotalAlternative(result.Text);
            
            Console.WriteLine($"Receipt Total: {total}");
        }
    }
    
    static decimal? ExtractTotal(List<string> lines)
    {
        // Primary extraction method
        foreach (var line in lines)
        {
            if (line.Contains("TOTAL") && 
                System.Text.RegularExpressions.Regex.IsMatch(line, @"\d+\.\d{2}"))
            {
                var match = System.Text.RegularExpressions.Regex.Match(line, @"(\d+\.\d{2})");
                if (decimal.TryParse(match.Value, out var total))
                    return total;
            }
        }
        return null;
    }
    
    static decimal? ExtractTotalAlternative(string fullText)
    {
        // Fallback extraction method
        var pattern = @"(?:Total|TOTAL|Grand Total|Amount Due).*?(\d+\.\d{2})";
        var match = System.Text.RegularExpressions.Regex.Match(fullText, pattern);
        
        if (match.Success && decimal.TryParse(match.Groups[1].Value, out var total))
            return total;
            
        return null;
    }
}

Quais aspectos principais devo lembrar sobre APIs de digitalização de recibos?

APIs de digitalização de recibos como IronOCR oferecem soluções confiáveis para automatizar a extração de dados de recibos. Usando tecnologia avançada de OCR, as empresas podem extrair automaticamente nomes de fornecedores, datas de compra, listas detalhadas, preços, impostos e totais. Com suporte para múltiplos idiomas, moedas e suporte a código de barras, as empresas podem simplificar a gestão de recibos, economizar tempo e tomar decisões baseadas em dados.

IronOCR fornece as ferramentas que os desenvolvedores precisam para extração de texto precisa e eficiente, permitindo automação de tarefas e eficiência aprimorada. O conjunto de recursos completo da biblioteca inclui suporte para vários tipos de documentos e melhorias recentes como redução de memória em 98%.

Cumprindo os pré-requisitos e integrando o IronOCR, você pode revelar os benefícios do processamento automatizado de recibos. A documentação da biblioteca, exemplos e guias de solução de problemas garantem uma implementação tranquila.

Para mais informações, visite a página de licenciamento ou explore o tutorial do C# Tesseract OCR.

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.