IRONSOFTWAREHOME
UTILISATION D'IRONOCR

API de numérisation de reçus : extraire des données de reçus à l’aide de C# et IronOCR

Kannaopat Udonpant
Kannapat Udonpant
Updated: 8 mai 2026

Les API de numérisation de reçus automatisent l'extraction de données à partir des reçus grâce à la technologie OCR, réduisant considérablement les erreurs de saisie manuelle et accélérant le traitement. Ce guide explique comment utiliser IronOCR en C# pour extraire avec précision les noms des fournisseurs, les dates, les articles, les prix et les totaux à partir d'images de reçus, grâce à un prétraitement d'image intégré et à la prise en charge de plusieurs formats.

Pourquoi choisir IronOCR pour la numérisation de reçus ?

IronOCR est une bibliothèque OCR flexible offrant une extraction de texte fiable à partir de documents numérisés, d'images et de fichiers PDF. Grâce à des algorithmes avancés, à la vision par ordinateur et à des modèles d'apprentissage automatique, IronOCR garantit une précision élevée même dans des scénarios difficiles. La bibliothèque prend en charge plusieurs langues et styles de police, ce qui la rend adaptée aux applications internationales. En intégrant IronOCR à vos applications, vous pouvez automatiser la saisie de données et l'analyse de texte, et ainsi accroître votre productivité.

Comment IronOCR extrait-il le texte des images de reçus ?

IronOCR récupère le texte des documents, des photographies, des captures d'écran et des flux vidéo en direct sous forme de réponses JSON. Grâce à des algorithmes sophistiqués et à l'apprentissage automatique, IronOCR analyse les données d'image , reconnaît les caractères et les convertit en texte lisible par machine. La bibliothèque utilise la technologie Tesseract 5, améliorée grâce à des perfectionnements exclusifs, pour une précision supérieure.

Pourquoi IronOCR est-il excellent pour le traitement des reçus ?

IronOCR excelle dans le traitement des numérisations de faible qualité , des formats de reçus variés et des orientations différentes . Les filtres de prétraitement d'image intégrés améliorent automatiquement la qualité de l'image avant traitement, garantissant des résultats optimaux même à partir de reçus froissés ou décolorés.

De quoi ai-je besoin pour utiliser IronOCR?

Avant d'utiliser IronOCR, assurez-vous que les conditions préalables suivantes sont remplies :

Quels environnements de développement sont pris en charge ?

  1. Environnement de développement : Installez un EDI approprié comme Visual Studio. IronOCR prend en charge Windows , Linux , macOS , Azure et AWS .

Quelles sont les compétences en programmation requises ?

  1. Connaissances en C# : Une compréhension de base du C# vous aide à modifier les exemples de code. IronOCR fournit des exemples simples et une documentation API .

Quelles dépendances logicielles sont nécessaires ?

  1. Installation IronOCR : Installez-le via le gestionnaire de packages NuGet . Des dépendances spécifiques à la plateforme peuvent être nécessaires.

Une clé de licence est-elle requise ?

  1. Clé de licence (facultative) : Essai gratuit disponible ; L'utilisation en production nécessite une licence .

Comment créer un nouveau projet Visual Studio pour la numérisation de reçus ?

Comment démarrer un nouveau projet dans Visual Studio ?

Ouvrez Visual Studio, allez dans Fichiers, puis survolez Nouveau et cliquez sur Projet.

IDE de Visual Studio avec le menu Fichier développé montrant l'option 'Nouveau > Projet' en surbrillance, et l'éditeur de code affichant du code C# pour charger un classeur Excel Nouvelle image de projet

Quel modèle de projet dois-je choisir ?

Sélectionnez Application console et cliquez sur Suivant. Ce modèle est idéal pour apprendre IronOCR avant de l'implémenter dans des applications web.

Boîte de dialogue 'Créer un nouveau projet' de Visual Studio montrant le modèle d'application console sélectionné avec des options de plateforme pour Windows, Linux et macOS Application Console

Comment nommer mon projet de scanner de reçus ?

Saisissez le nom et l'emplacement de votre projet, puis cliquez sur Suivant. Choisissez un nom descriptif comme "ReceiptScannerAPI".

Écran de configuration de nouveau projet de Visual Studio pour créer une application console nommée 'IronOCR' avec C# sélectionné et les paramètres de solution affichés Configuration du Projet

Quelle version de .NET Framework dois-je choisir ?

Sélectionnez .NET 5.0 ou une version ultérieure pour une compatibilité optimale, puis cliquez sur Créer.

Boîte de dialogue 'Informations supplémentaires' de Visual Studio montrant la configuration de l'application console avec .NET 5.0 sélectionné comme framework cible et des options de plateforme pour Linux, macOS, Windows et console Framework Cible

Comment installer IronOCR dans mon projet ?

Deux méthodes d'installation simples sont disponibles :

Comment utiliser la méthode du gestionnaire de packages NuGet ?

Accédez à Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution

Boîte de dialogue des paramètres du Package Manager NuGet de Visual Studio avec la configuration des sources de paquets, ainsi qu'une structure de projet C# dans l'explorateur de solution Package Manager NuGet

Recherchez IronOCR et installez le package. Pour les reçus non anglais, installez les modules linguistiques correspondants .

Package Manager NuGet dans Visual Studio affichant les paquets IronOCR installés, y compris la bibliothèque principale et les paquets OCR spécifiquement linguistiques pour l'arabe, l'hébreu et l'espagnol IronOCR

Comment utiliser l'installation en ligne de commande ?

  1. Accédez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages

  2. Saisissez cette commande :

    PM > Install-Package IronOcr

    Fenêtre de la console du Package Manager de Visual Studio affichant la commande NuGet 'PM> Install-Package IronOcr' en cours d'exécution pour un projet nommé 'Créer PDF' Console du Package Manager

Comment extraire rapidement les données d'un reçu avec IronOCR?

Extraire les données d'un reçu en quelques lignes de code seulement :

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copiez et exécutez cet extrait de code.

    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. 3Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
    arrow pointer

Comment extraire des données structurées à partir d'images de reçus ?

IronOCR extrait les lignes de commande, les prix, les taxes et les totaux de différents types de documents. La bibliothèque prend en charge les PDF , les TIFF multipages et divers formats d'image .

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}");
        }
    }
}

Quelles techniques permettent d'améliorer la précision de la numérisation des reçus ?

Techniques clés pour une numérisation précise des reçus :

Console de débogage de Visual Studio affichant les données extraites d'une facture à partir d'un PDF, montrant les articles avec descriptions, quantités, prix, taxes et totaux Sortie

Comment extraire l'intégralité du contenu du reçu ?

Extraire le contenu complet du reçu en conservant la mise en forme :

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 débogage de Visual Studio affichant les données extraites d'une facture à partir d'un PDF, montrant les articles avec descriptions, quantités, prix, taxes et totaux Résultat de l'API de numérisation des reçus

Quelles sont les fonctionnalités avancées qui améliorent la numérisation des reçus ?

IronOCR offre plusieurs fonctionnalités avancées qui améliorent considérablement la précision de la numérisation des reçus :

Quelles langues IronOCR prend-il en charge ?

  1. Prise en charge multilingue : Traitez les reçus dans plus de 125 langues ou dans plusieurs langues dans un seul document .

IronOCR peut-il lire les codes-barres sur les reçus ?

  1. Lecture des codes-barres : Détection et lecture automatiques des codes-barres et des codes QR .

Comment la vision par ordinateur facilite-t-elle le traitement des reçus ?

  1. Vision par ordinateur : Utiliser la détection de texte avancée pour localiser les régions de texte avant la reconnaissance optique de caractères (OCR).

Puis-je entraîner des modèles personnalisés pour des formats de reçus uniques ?

  1. Formation personnalisée : Entraîner les polices personnalisées pour les formats de reçus spécialisés.

Comment puis-je améliorer les performances du traitement en masse ?

  1. Optimisation des performances : Mettre en œuvre le multithreading et le traitement asynchrone pour les opérations en masse.
// 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);
        }
    }
}

Comment gérer les problèmes courants liés à la numérisation des reçus ?

La numérisation des reçus présente des défis uniques IronOCR contribue à relever :

Comment gérer les images de reçus de mauvaise qualité ?

  • Images de mauvaise qualité : utilisez l' assistant de filtre pour trouver automatiquement les paramètres de prétraitement optimaux.

Qu'en est-il des reçus de travers ou pivotés ?

Comment traiter les reçus décolorés ou à faible contraste ?

IronOCR peut-il traiter les reçus froissés ou endommagés ?

  • Reçus froissés ou endommagés : Un prétraitement avancé permet de récupérer le texte à partir d'images difficiles à lire.

Comment gérer les différents formats et mises en page des reçus ?

Les formats de reçus varient considérablement d'un détaillant à l'autre. IronOCR propose des approches flexibles :

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

Quels sont les points clés à retenir concernant les API de numérisation de reçus ?

Les API de numérisation de reçus, comme IronOCR, offrent des solutions fiables pour automatiser l'extraction de données. Grâce à une technologie OCR avancée, les entreprises peuvent extraire automatiquement les noms des fournisseurs, les dates d'achat, les listes détaillées, les prix, les taxes et les totaux. Grâce à la prise en charge de plusieurs langues , devises et codes-barres , les entreprises peuvent simplifier la gestion des reçus, gagner du temps et prendre des décisions basées sur les données.

IronOCR fournit aux développeurs les outils nécessaires à une extraction de texte précise et efficace, permettant l'automatisation des tâches et une efficacité accrue. L' ensemble complet des fonctionnalités de la bibliothèque comprend la prise en charge de divers types de documents et des améliorations récentes telles qu'une réduction de 98 % de la mémoire .

En remplissant les conditions préalables et en intégrant IronOCR, vous pourrez bénéficier des avantages du traitement automatisé des reçus. La documentation , les exemples et les guides de dépannage de la bibliothèque garantissent une mise en œuvre sans accroc.

Pour plus d'informations, consultez la page relative aux licences ou explorez le tutoriel C# Tesseract OCR .

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise