Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

Erstellen Sie eine Quittung OCR-API in C#, die tatsächlich nützliche Daten extrahiert

Das manuelle Eintippen von Belegdaten ist eine so mühsame und fehleranfällige Arbeit, dass Entwickler ihre Berufswahl in Frage stellen. Eine OCR-API für Belege macht die manuelle Dateneingabe überflüssig, indem sie mithilfe von optischer Zeichenerkennung automatisch Text aus Belegbildern extrahiert und in strukturierte Daten umwandelt, die von Anwendungen tatsächlich verwendet werden können. Ob es um die Automatisierung des Spesenmanagements, die Integration von Buchhaltungssoftware oder die Unterstützung von Treueprogrammen geht – eine solide OCR-Lösung für Belege übernimmt die Hauptarbeit.

In diesem Artikel zeigen wir Ihnen, wie Sie mit IronOCR, einer .NET Bibliothek, die vollständig lokal ausgeführt wird, Belegbilder lokal verarbeitet und keine sensiblen Belegdaten an Cloud-Dienste von Drittanbietern sendet, eine OCR-API für Belege in C# erstellen können. Das bedeutet umfassender Datenschutz ohne Einbußen bei der Genauigkeit.

Starten Sie mit einer kostenlosen Testversion von IronOCR und folgen Sie den unten stehenden Beispielen.

Wie funktioniert die OCR-Technologie für Kassenbons?

Erstellen Sie eine Beleg-OCR-API in C#, die tatsächlich nützliche Daten extrahiert: Bild 1 - Beispielausgabe der Beleg-OCR-API

Die Beleg-OCR (optische Zeichenerkennung) automatisiert die Datenextraktion von Belegen, indem sie den gedruckten Text auf einem Belegbild in maschinenlesbaren Text umwandelt. Im Hintergrund analysieren KI-Technologien und Deep-Learning-Modelle das visuelle Layout eines Kassenbons, identifizieren Textbereiche und erkennen Zeichen mit unübertroffener Genauigkeit, wobei bei sauberen Scans oft 99 % oder mehr erreicht werden.

Moderne OCR-APIs für Belege nutzen maschinelles Lernen, um wichtige Informationen wie Händlername, Datum, einzelne Positionen, Summen und Steuerbeträge aus verschiedenen Belegformaten und -layouts zu extrahieren. Deep-Learning-Verfahren ermöglichen es diesen Modellen, sich durch das Lernen aus großen Datensätzen kontinuierlich zu verbessern und sich im Laufe der Zeit an neue Belegdesigns und Sprachen anzupassen. Das Ergebnis ist eine schnelle und zuverlässige Extraktion von Belegdaten, die die langsame und fehleranfällige manuelle Eingabe in verschiedenen Branchen ersetzt.

Die Technologie zum Scannen von Belegen kann mehrere Sprachen verarbeiten, Dokumente in Formaten wie JPG, PNG und PDF bearbeiten und die Ergebnisse in einem standardisierten Format wie strukturiertem JSON liefern, wodurch die nahtlose Integration in bestehende Systeme unkompliziert wird.

Wie lassen sich Belegdaten mit C# extrahieren?

Mit IronOCR lassen sich Daten aus Belegen in C# mit nur wenigen Codezeilen extrahieren. Der Kern-Workflow lädt eine Bilddatei des Belegs, führt die OCR-Engine aus und gibt den vollständig extrahierten Text zurück.

using IronOcr;
// Initialize the OCR engine for receipt scanning
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
// Load the receipt image for data extraction
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Extract text from the receipt
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
// Initialize the OCR engine for receipt scanning
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
// Load the receipt image for data extraction
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Extract text from the receipt
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

' Initialize the OCR engine for receipt scanning
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English

' Load the receipt image for data extraction
Using input As New OcrInput()
    input.LoadImage("receipt.jpg")
    ' Extract text from the receipt
    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Ausgabe

Erstellen Sie eine Beleg-OCR-API in C#, die tatsächlich nützliche Daten extrahiert: Bild 2 - IronOCR -Ausgabe des Lesebelegs

Die IronTesseract-Klasse ist die primäre OCR-Engine, ein verwalteter Wrapper um Tesseract 5, der die umständliche native C++-Interoperabilität und manuelle Konfiguration überflüssig macht. Die Einstellung OcrLanguage.English teilt der Engine mit, welches Sprachmodell verwendet werden soll. IronOCR unterstützt über 125 Sprachen für die Verarbeitung von Belegen aus aller Welt.

OcrInput akzeptiert Belegbilder in praktisch allen gängigen Formaten (JPG, PNG, BMP, TIFF, GIF, WEBP) sowie PDFs. Die Methode Read führt die eigentliche OCR durch und gibt ein OcrResult-Objekt zurück, ein umfangreiches Dokumentobjektmodell, das nicht nur einfachen Text enthält, sondern auch einen strukturierten Zugriff auf Absätze, Zeilen, Wörter und einzelne Zeichen mit Konfidenzwerten ermöglicht. Dies ist ideal für Workflows zur Beleganalyse, die Daten auf einer detaillierten Ebene extrahieren müssen.

Wie kann die Bildvorverarbeitung Fehler beim Scannen von Belegen reduzieren?

Fotos von Kassenbons aus der Praxis sind selten perfekt. Zerknittertes Papier, schlechte Beleuchtung und leichte Drehungen führen zu Störungen, die bei der Datenextraktion Fehler verursachen können. Durch die Vorverarbeitung des Bildes vor der OCR-Texterkennung wird die Genauigkeit deutlich verbessert und Fehler reduziert, die andernfalls Ihre Belegdaten verfälschen würden.

using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Preprocess the receipt image to improve OCR accuracy
input.DeNoise();    // Remove digital noise from the scanned receipt
input.Deskew();     // Straighten a tilted or rotated receipt capture
input.Sharpen();    // Enhance text clarity for better recognition
OcrResult result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Preprocess the receipt image to improve OCR accuracy
input.DeNoise();    // Remove digital noise from the scanned receipt
input.Deskew();     // Straighten a tilted or rotated receipt capture
input.Sharpen();    // Enhance text clarity for better recognition
OcrResult result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine(result.Text);
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadImage("receipt.jpg")
    ' Preprocess the receipt image to improve OCR accuracy
    input.DeNoise()    ' Remove digital noise from the scanned receipt
    input.Deskew()     ' Straighten a tilted or rotated receipt capture
    input.Sharpen()    ' Enhance text clarity for better recognition
    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine($"Confidence: {result.Confidence}%")
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Erstellen Sie eine OCR-API für Belege in C#, die tatsächlich nützliche Daten extrahiert: Bild 3 - Beispielausgabe mit schlechtem Belegbild

Bildvorverarbeitungsfunktionen

Zur Verbesserung der Extraktionsgenauigkeit bietet IronOCR mehrere integrierte Filter zur Bereinigung der Bilder vor Beginn des OCR-Prozesses.

Funktion Zweck
DeNoise() Entfernt Flecken und digitale Artefakte, die häufig in gescannten Dokumenten auftreten.
Deskew() Erkennt und korrigiert Rotationen bei schiefen oder geneigten Bildern.
Sharpen() Verbessert die Lesbarkeit verblasster Texte durch die Hervorhebung unscharfer Kanten.
Binarize() Konvertiert Bilder in Schwarzweiß, um den Kontrast zu erhöhen.
ToGrayScale() Entfernt Farbinformationen, um das Bild für die OCR-Engine zu vereinfachen.
EnhanceResolution() Skaliert Bilder mit niedriger DPI-Auflösung hoch, um die Zeichenerkennung zu verbessern.

Validierung von Daten mit Konfidenzwerten

Über die einfache Textextraktion hinaus liefert die Confidence-Eigenschaft von OcrResult einen Prozentwert, der die Zuverlässigkeit der Ausgabe angibt.

Für automatisierte Belegverarbeitungssysteme, die große Mengen verarbeiten, ist dieser Wert von unschätzbarem Wert. Dadurch kann das System einen Schwellenwert festlegen – beispielsweise werden alle Ergebnisse über 90 % automatisch verarbeitet, während Ergebnisse mit geringer Zuverlässigkeit zur manuellen Überprüfung gekennzeichnet werden. Dadurch wird eine hohe Datenqualität gewährleistet, ohne dass ein Mensch jeden einzelnen Beleg überprüfen muss.

Wie können bestimmte Belegfelder aus OCR-Text extrahiert werden?

Die Rückgewinnung des Rohtextes durch eine OCR-Engine ist ein guter Anfang, aber eben nur der Anfang. Wenn Sie einen Spesenbericht oder ein Buchhaltungstool mit Echtzeitverarbeitung erstellen, benötigen Sie nicht nur einen "Textblock", sondern spezifische Datenfelder wie das Datum, den Namen des Händlers und die Endsumme.

Sobald IronOCR die eigentliche Arbeit des Lesens des Bildes erledigt hat, können wir in unserer Beleg-API Standard-C#-Logik und reguläre Ausdrücke (Regex) verwenden, um die spezifischen Felder zu extrahieren, nach denen wir suchen.

using IronOcr;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using var input = new OcrInput("receipt.jpg");
input.DeNoise();
OcrResult result = ocr.Read(input);
string ocrText = result.Text;

// Parse the date from receipt data
var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}");
string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found";

// Parse the total amount
var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})");
string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found";

Console.WriteLine($"Date: {receiptDate}");
Console.WriteLine($"Total: ${total}");
using IronOcr;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using var input = new OcrInput("receipt.jpg");
input.DeNoise();
OcrResult result = ocr.Read(input);
string ocrText = result.Text;

// Parse the date from receipt data
var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}");
string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found";

// Parse the total amount
var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})");
string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found";

Console.WriteLine($"Date: {receiptDate}");
Console.WriteLine($"Total: ${total}");
Imports IronOcr
Imports System.Text.RegularExpressions

Dim ocr As New IronTesseract()
Using input As New OcrInput("receipt.jpg")
    input.DeNoise()
    Dim result As OcrResult = ocr.Read(input)
    Dim ocrText As String = result.Text

    ' Parse the date from receipt data
    Dim dateMatch As Match = Regex.Match(ocrText, "\d{1,2}/\d{1,2}/\d{2,4}")
    Dim receiptDate As String = If(dateMatch.Success, dateMatch.Value, "Not found")

    ' Parse the total amount
    Dim totalMatch As Match = Regex.Match(ocrText, "(?i)total[\s:$]*(\d+\.\d{2})")
    Dim total As String = If(totalMatch.Success, totalMatch.Groups(1).Value, "Not found")

    Console.WriteLine($"Date: {receiptDate}")
    Console.WriteLine($"Total: ${total}")
End Using
$vbLabelText   $csharpLabel

Erstellen Sie eine Beleg-OCR-API in C#, die tatsächlich nützliche Daten extrahiert: Bild 4 - Beispielausgabe der Verwendung von IronOCR und einfachen regulären Ausdrücken

Dieses Beispiel verwendet einfache reguläre Ausdrücke, um Datum und Gesamtbetrag automatisch aus dem rohen OCR-Belegtext zu extrahieren. Das Datumsmuster entspricht gängigen Belegdatumsformaten wie 03/15/2026, während das Gesamtmuster nach dem Wort "TOTAL" gefolgt von einem Dollarbetrag sucht. Für Produktionssysteme sollten diese Muster an die jeweiligen Belegformate angepasst werden.

Um die Positionsdaten – also einzelne Produktnamen, Mengen und Preise – zu extrahieren, teilen Sie den OCR-Text zeilenweise auf und wenden Sie Muster an, die die Positionen identifizieren. Dieser Ansatz eignet sich gut für die Umwandlung von Belegbildern in strukturierte Daten, die für die Ausgabe im JSON-Format, für Workflows im Bereich des Ausgabenmanagements und für die direkte Integration mit Buchhaltungssoftware geeignet sind. Für eine erweiterte Beleganalyse mit unterschiedlichen Layouts empfiehlt sich die Kombination von regionenbasierter OCR-Lesung (unter Verwendung von ContentArea Rechtecken) mit den Dokumentstrukturfunktionen von IronOCR, um Positionsdaten aus bestimmten Abschnitten des Belegs zu extrahieren.

Ein Realitätscheck für Entwickler zum Thema reguläre Ausdrücke

Seien wir ehrlich: Reguläre Ausdrücke sind zwar ein schneller und einfacher Weg, um anzufangen, aber sie sind nicht unfehlbar. Im Alltag sind Quittungen oft unordentlich. Ein Händler druckt vielleicht "GESAMT", ein anderer "Rechnungsbetrag", und bei einem dritten befindet sich ein Kaffeefleck direkt über dem Dollarzeichen.

Wenn Sie dies in die Produktion überführen, sollten Sie sich nicht nur auf ein einziges Muster verlassen. So gestalten Sie es robuster:

  • Nutzen Sie Konfidenzwerte: IronOCR gibt Ihnen für jedes gelesene Wort einen Konfidenzprozentsatz an. Wenn die Zuverlässigkeit Ihrer "Gesamt"-Betragsangabe unter 80 % liegt, sollten Sie den Beleg wahrscheinlich zur Überprüfung durch einen Mitarbeiter markieren.
  • Daten überprüfen: Vertrauen Sie nicht einfach der Zeichenkette. Versuche, die Zahl "Total" in eine Dezimalzahl umzuwandeln. Falls dies fehlschlägt, hat Ihr OCR-System möglicherweise eine "5" fälschlicherweise als "S" interpretiert.
  • Die Position ist wichtig: Bei komplexen Layouts verwenden Sie IronOCRs OcrResult.Blocks oder Lines, um Text anhand seiner Position auf der Seite zu finden. Wenn die Summe immer unten rechts steht, reduziert die Fokussierung auf diesen Bereich das "Rauschen" durch andere Zahlen auf dem Beleg.

Wie lässt sich eine OCR-API für Belege in Spesenabrechnungssysteme integrieren?

Eine OCR-API für Belege wird erst dann richtig leistungsstark, wenn sie strukturierte Belegdaten direkt in Geschäftssysteme einspeist. IronOCR bietet eine entwicklerfreundliche API, die sich nahtlos in jede .NET Anwendung integrieren lässt, sei es ein ASP.NET Webdienst, ein Desktop-Spesenabrechnungsprogramm oder ein Hintergrundprozess zur Stapelverarbeitung von Belegen.

Die API gibt den extrahierten Text als OcrResult-Objekt zurück, das den Zugriff auf einzelne Seiten, Absätze und Zeilen ermöglicht. Dadurch wird es unkompliziert, eine Belegverarbeitungspipeline zu erstellen, die OCR-Text in strukturiertes JSON umwandelt, die Daten validiert (einschließlich Duplikaterkennung und Kaufvalidierung) und sie an Buchhaltungssoftware, ERP-Systeme oder Datenbanken weiterleitet.

IronOCR führt die gesamte OCR-Verarbeitung lokal durch, es besteht keine Abhängigkeit von der Cloud, für die kostenlose Testversion ist keine Kreditkarte erforderlich und Sie haben die volle Kontrolle über sensible Finanzdokumente. Dieser lokale Ansatz bedeutet, dass die Beleg-OCR-API große Mengen digitaler Belege ohne Latenzprobleme verarbeiten kann und einen inhärenten Datenschutz für Organisationen in verschiedenen Branchen mit strengen Compliance-Anforderungen bietet. Die Bibliothek bietet eine umfassende Dokumentation und lässt sich über NuGet nahtlos in bestehende Systeme integrieren, was sie zu einer pragmatischen Wahl für Teams macht, die Wert auf Leistung und Einfachheit legen.

Für Entwickler, die eine Komplettlösung zum Scannen von Belegen erstellen möchten, bietet IronOCR außerdem Unterstützung für das Lesen von Barcodes und QR-Codes , die Generierung durchsuchbarer PDFs und die Verarbeitung mehrseitiger Dokumente – alles innerhalb derselben Bibliothek.

Beginnen Sie noch heute mit der Automatisierung der Belegdatenextraktion.

Mit IronOCR in C# lässt sich eine Beleg-OCR-API erstellen, die die manuelle Dateneingabe überflüssig macht und sie durch eine schnelle, genaue und automatisierte Datenextraktion ersetzt. Von der einfachen Belegscannung bis hin zur erweiterten Beleganalyse mit Extraktion auf Feldebene bietet die Bibliothek alles, was benötigt wird, um Belegbilder in wertvolle, verwertbare strukturierte Daten umzuwandeln, und das alles, ohne Dokumente an externe Standorte zu senden.

Die Kombination aus leistungsstarken Vorverarbeitungsfiltern, einer übersichtlichen .NET API, maschinellem Lernen zur Erkennung und lokaler Verarbeitung macht IronOCR zu einer hervorragenden Lösung für Spesenmanagement, Belegverarbeitung und jeden Workflow, der Daten zuverlässig und in großem Umfang aus Belegen extrahieren muss.

Sind Sie bereit, die manuelle Dateneingabe aus Ihren Belegprozessen zu entfernen? Informieren Sie sich über die IronOCR -Lizenzoptionen, um den passenden Plan für Ihr Team zu finden, oder starten Sie mit einer kostenlosen Testversion, um sich selbst von den Ergebnissen zu überzeugen.

Install-Package IronOcr
Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an