IRONSOFTWAREHOME
VERWENDUNG VON IRONOCR

API zum Scannen von Belegen: Daten aus Belegen mit C# und IronOCR extrahieren

Kannaopat Udonpant
Kannapat Udonpant
Updated: 8. Mai 2026

Belegscanning-APIs automatisieren die Datenextraktion von Belegen mithilfe von OCR-Technologie, wodurch manuelle Eingabefehler deutlich reduziert und die Verarbeitung beschleunigt wird. Dieser Leitfaden zeigt, wie man mit IronOCR in C# Lieferantennamen, Datum, Artikel, Preise und Summen präzise aus Belegbildern extrahiert, mit integrierter Bildvorverarbeitung und Unterstützung für mehrere Formate.

Warum IronOCR zum Scannen von Belegen wählen?

IronOCR ist eine flexible OCR-Bibliothek , die eine zuverlässige Textextraktion aus gescannten Dokumenten, Bildern und PDFs bietet. Mit fortschrittlichen Algorithmen, Computer Vision und Modellen des maschinellen Lernens gewährleistet IronOCR auch in anspruchsvollen Szenarien eine hohe Genauigkeit. Die Bibliothek unterstützt mehrere Sprachen und Schriftarten und eignet sich daher für globale Anwendungen. Durch die Integration von IronOCR in Ihre Anwendungen können Sie die Dateneingabe und Textanalyse automatisieren und so die Produktivität steigern.

Wie extrahiert IronOCR Text aus Belegbildern?

IronOCR extrahiert Text aus Dokumenten, Fotos, Screenshots und Live-Kamerabildern als JSON-Antworten. Mithilfe ausgefeilter Algorithmen und maschinellem Lernen analysiert IronOCR Bilddaten , erkennt Zeichen und wandelt sie in maschinenlesbaren Text um. Die Bibliothek nutzt die Tesseract 5-Technologie, die durch firmeneigene Verbesserungen für überragende Genauigkeit optimiert wurde.

Warum eignet sich IronOCR hervorragend für die Belegverarbeitung?

IronOCR zeichnet sich durch seine Fähigkeit aus , Scans mit geringer Qualität , unterschiedliche Belegformate und verschiedene Ausrichtungen problemlos zu verarbeiten. Integrierte Bildvorverarbeitungsfilter verbessern automatisch die Bildqualität vor der eigentlichen Verarbeitung und gewährleisten so optimale Ergebnisse auch bei zerknitterten oder verblassten Belegen.

Was benötige ich, um IronOCR zu verwenden?

Bevor Sie mit IronOCR arbeiten, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:

Welche Entwicklungsumgebungen werden unterstützt?

  1. Entwicklungsumgebung : Installieren Sie eine geeignete IDE wie Visual Studio. IronOCR unterstützt Windows , Linux , macOS , Azure und AWS .

Welche Programmierkenntnisse sind erforderlich?

  1. C#-Kenntnisse : Grundlegende C#-Kenntnisse helfen Ihnen, Codebeispiele anzupassen. IronOCR bietet einfache Beispiele und eine API-Dokumentation .

Welche Softwareabhängigkeiten sind notwendig?

  1. IronOCR Installation : Installation über den NuGet Paketmanager . Plattformspezifische Abhängigkeiten können erforderlich sein.

Ist ein Lizenzschlüssel erforderlich?

  1. Lizenzschlüssel (optional) : Kostenlose Testversion verfügbar; Für die Nutzung in Produktionsprozessen ist eine Lizenz erforderlich.

Wie erstelle ich ein neues Visual Studio-Projekt zum Scannen von Belegen?

Wie starte ich ein neues Projekt in Visual Studio?

Öffnen Sie Visual Studio und gehen Sie zu Dateien, klicken Sie dann auf Neu und dann auf Projekt.

Visual Studio IDE mit erweitertem Menü Neues Projektbild

Welche Projektvorlage soll ich wählen?

Wählen Sie "Konsolenanwendung" und klicken Sie auf "Weiter". Diese Vorlage eignet sich ideal zum Erlernen von IronOCR vor der Implementierung in Webanwendungen.

Der Dialog Konsolenanwendung

Wie soll ich mein Projekt zur Entwicklung eines Belegscanners nennen?

Geben Sie den Projektnamen und den Projektort ein und klicken Sie dann auf Weiter. Wählen Sie einen aussagekräftigen Namen wie "ReceiptScannerAPI".

Visual Studio-Fenster zur Konfiguration eines neuen Projekts zum Erstellen einer Konsolenanwendung namens Projektkonfiguration

Welche .NET Framework Version soll ich auswählen?

Wählen Sie .NET 5.0 oder höher für optimale Kompatibilität und klicken Sie dann auf Erstellen.

Der Dialog Ziel-Framework

Wie installiere ich IronOCR in meinem Projekt?

Es stehen zwei einfache Installationsmethoden zur Verfügung:

Wie verwende ich die NuGet Paketmanager-Methode?

Gehen Sie zu Tools > NuGet Paket-Manager > NuGet Pakete für die Projektmappe verwalten

Visual Studio NuGet Package Manager-Einstellungsdialog mit Konfiguration der Paketquellen, neben einer C#-Projektstruktur im Projektmappen-Explorer NuGet-Paket-Manager

Suchen Sie nach IronOCR und installieren Sie das Paket. Für nicht-englische Belege installieren Sie sprachspezifische Pakete .

 Der NuGet Paketmanager in Visual Studio zeigt die installierten IronOCR Pakete an, einschließlich der Hauptbibliothek und sprachspezifischer OCR-Pakete für Arabisch, Hebräisch und Spanisch. IronOCR

Wie installiere ich über die Kommandozeile?

  1. Gehen Sie zu "Tools" > "NuGet Paket-Manager" > "Paket-Manager-Konsole" .

  2. Geben Sie diesen Befehl ein:

    PM > Install-Package IronOcr

    Visual Studio Package Manager Console-Fenster, das den NuGet Befehl 'PM> Install-Package IronOCR' anzeigt, der für ein Projekt namens 'Create PDF' ausgeführt wird. Package Manager Console

Wie kann ich mit IronOCR schnell Belegdaten extrahieren?

Belegdaten mit nur wenigen Codezeilen extrahieren:

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    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. 3Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
    arrow pointer

Wie extrahiere ich strukturierte Daten aus Belegbildern?

IronOCR extrahiert Positionen, Preise, Steuern und Summen aus verschiedenen Dokumenttypen. Die Bibliothek unterstützt PDFs , mehrseitige TIFFs und verschiedene Bildformate .

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

Welche Techniken verbessern die Genauigkeit beim Scannen von Kassenbons?

Wichtige Techniken für das korrekte Scannen von Belegen:

Visual Studio-Debugkonsole mit Anzeige extrahierter Rechnungsdaten aus einer PDF-Datei, einschließlich Artikeln mit Beschreibungen, Mengen, Preisen, Steuern und Summen Ausgabe

Wie kann ich den gesamten Inhalt des Kassenbons extrahieren?

Extrahieren Sie den vollständigen Beleginhalt unter Beibehaltung der Formatierung:

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

Visual Studio-Debugkonsole mit Anzeige extrahierter Rechnungsdaten aus einer PDF-Datei, einschließlich Artikeln mit Beschreibungen, Mengen, Preisen, Steuern und Summen Scan-Empfangs-API-Ausgabe

Welche erweiterten Funktionen verbessern das Scannen von Belegen?

IronOCR bietet mehrere fortschrittliche Funktionen, die die Genauigkeit des Belegscannens deutlich verbessern:

Welche Sprachen unterstützt IronOCR ?

  1. Mehrsprachige Unterstützung : Belege in über 125 Sprachen oder in mehreren Sprachen in einem Dokument verarbeiten.

Kann IronOCR Barcodes auf Kassenbons lesen?

  1. Barcode-Lesung : Automatisches Erkennen und Lesen von Barcodes und QR-Codes .

Wie hilft Computer Vision bei der Belegverarbeitung?

  1. Computer Vision : Nutzen Sie fortschrittliche Texterkennung , um Textbereiche vor der OCR zu lokalisieren.

Kann ich benutzerdefinierte Modelle für spezielle Belegformate trainieren?

  1. Kundenspezifisches Training : Schulung von benutzerdefinierten Schriftarten für spezielle Belegformate.

Wie kann ich die Leistung bei der Massenverarbeitung verbessern?

  1. Leistungsoptimierung : Implementierung von Multithreading und asynchroner Verarbeitung für Massenoperationen.
// 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);
        }
    }
}

Wie gehe ich mit häufigen Herausforderungen beim Scannen von Kassenbons um?

Das Scannen von Belegen stellt besondere Herausforderungen dar, bei deren Bewältigung IronOCR hilft:

Wie gehe ich mit qualitativ minderwertigen Belegbildern um?

  • Bilder von geringer Qualität : Verwenden Sie den Filterassistenten , um automatisch optimale Vorverarbeitungseinstellungen zu finden.

Was ist mit schiefen oder gedrehten Kassenbons?

Wie bearbeite ich verblasste oder kontrastarme Kassenbons?

Kann IronOCR auch zerknitterte oder beschädigte Kassenbons verarbeiten?

Wie verwalte ich unterschiedliche Belegformate und -layouts?

Die Formate der Kassenbons variieren stark zwischen den Einzelhändlern. IronOCR bietet flexible Ansätze:

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

Welche wichtigen Punkte sollte ich mir bei APIs zum Scannen von Belegen merken?

APIs zur Belegscannung wie IronOCR bieten zuverlässige Lösungen zur automatisierten Datenextraktion von Belegen. Mithilfe fortschrittlicher OCR-Technologie können Unternehmen automatisch Lieferantennamen, Kaufdaten, Einzelposten, Preise, Steuern und Summen extrahieren. Dank der Unterstützung mehrerer Sprachen , Währungen und Barcodes können Unternehmen die Belegverwaltung vereinfachen, Zeit sparen und datengestützte Entscheidungen treffen.

IronOCR bietet Entwicklern die Werkzeuge, die sie für eine genaue und effiziente Textextraktion benötigen, und ermöglicht so die Automatisierung von Aufgaben und eine verbesserte Effizienz. Der vollständige Funktionsumfang der Bibliothek umfasst die Unterstützung verschiedener Dokumenttypen und aktuelle Verbesserungen wie eine Speicherreduzierung von 98 % .

Durch die Erfüllung der Voraussetzungen und die Integration von IronOCR können Sie die Vorteile der automatisierten Belegverarbeitung nutzen. Die Dokumentation , die Beispiele und die Anleitungen zur Fehlerbehebung der Bibliothek gewährleisten eine reibungslose Implementierung.

Weitere Informationen finden Sie auf der Lizenzseite oder im C# Tesseract OCR-Tutorial .

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.