IRONOCR VERWENDEN

Wie man Text aus einer Rechnung in C# Tutorial

Kannaopat Udonpant
Kannapat Udonpant
23. Februar 2023
Aktualisiert 18. Dezember 2023
Teilen Sie:

1. IronOCR, eine API für die optische Zeichenerkennung

IronOCR ist eine OCR-Bibliothek, die verwendet werden kann, um Textdaten aus Bildern zur Informationsgewinnung zu erkennen, einschließlich Belege-OCR. Es basiert auf der Tesseract OCR-Engine, die als eine der genauesten OCR-Engines gilt, die bis heute für die Erkennung von Belegen verfügbar sind. IronOCR kann Text mit Schlüsselinformationen aus verschiedenen Dokumenttypen lesen, einschließlich PNG, JPG, TIFF, JSON-Format und PDF, und kann Text in mehreren Sprachen erkennen.

Eines der Hauptmerkmale oder -dienste von IronOCR, das es besonders nützlich für die Kassenbon-OCR macht, ist seine Fähigkeit zur automatischen Erkennung der Textausrichtung, selbst wenn das Bild gedreht oder verzerrt ist. Dies ist für eine genaue Texterkennung auf hochgeladenen Quittungen und für die Datenextraktion unerlässlich, da Quittungen oft viele Informationen enthalten und gefaltet oder zerknittert sein können, wodurch der Text verzerrt wird.

2. IronOCR Merkmale

  • C# OCR nutzt Deep Learning zum Scannen und Erkennen von Texten aus Bildern, gescannten Dokumenten und PDFs.
  • .NET OCR unterstützt mehr als 127 Sprachen weltweit.
  • IronOCR kann Text aus Bildern in vielen Dateiformaten lesen, darunter PNG, JPG, TIFF und PDF.
  • Text, strukturierte Daten, JSON-Ausgabe oder durchsuchbare PDFs können aus extrahierten Informationen produziert werden.
  • IronOCR unterstützt .NET 5, 6 und 7 (Core, Framework und Standard).
  • IronOCR unterteilt die Eingabe auf der Grundlage von Textbereichen in verschiedene Bilder. Es verwendet Computer Vision, um Bereiche zu identifizieren, die Textelemente enthalten.

3. Erstellen eines neuen Projekts in Visual Studio

Öffnen Sie Visual Studio und wählen Sie das Menü Datei. Wählen Sie "Neues Projekt" und dann "Konsolenanwendung".

Geben Sie den Projektnamen ein und wählen Sie den Pfad in dem entsprechenden Textfeld aus. Klicken Sie dann auf die Schaltfläche Erstellen. Wählen Sie das gewünschte .NET-Framework, wie in der folgenden Abbildung dargestellt:

So erhalten Sie Text aus einer Rechnung in einem C#-Tutorial, Abbildung 1: Erstellen eines neuen Projekts in Visual Studio

Erstellen eines neuen Projekts in Visual Studio

Das Visual Studio-Projekt wird nun die Struktur für die Konsolenanwendung generieren. Danach wird die Datei Program.cs geöffnet, in der Sie den Quellcode schreiben und ausführen können.

So erhalten Sie Text aus einer Rechnung im C#-Tutorial, Abbildung 2: Die program.cs-Datei, die vom Visual Studio New Project Wizard generiert wurde

Die Datei program.cs, die vom Visual Studio New Project Wizard generiert wurde

4. IronOCR installieren

In Visual Studio können Sie IronOCR problemlos in Ihr C#-Projekt integrieren. IronOCR bietet mehrere Möglichkeiten zur Integration in ein C# .NET-Projekt. Hier werden wir eine davon besprechen: die Installation von IronOCR mit dem NuGet Package Manager.

In Visual Studio, gehen Sie zu Tools > NuGet-Paket-Manager > Paket-Manager-Konsole

Wie man Text aus einer Rechnung in C# erhält, Tutorial, Abbildung 3: Die Visual Studio NuGet-Paket-Manager-Konsole

Die Visual Studio NuGet-Paket-Manager-Konsole

Nach dem Klicken erscheint eine neue Konsole am unteren Rand des Visual Studio-Fensters. Geben Sie den folgenden Befehl in die Konsole ein und drücken Sie die Eingabetaste.

Install-Package IronOcr

IronOCR wird in nur wenigen Sekunden installiert.

5. Datenextraktion aus Belegen mit IronOCR

IronOCR ist eine leistungsstarke OCR-Bibliothek, die zum Extrahieren und Abrufen von Daten mit Details aus Quittungen verwendet werden kann. Mit IronOCR können Sie eine Quittung abfotografieren und in maschinenlesbaren Text umwandeln, der leicht analysiert und verarbeitet werden kann, ohne den Datenschutz zu gefährden.

Das folgende Beispiel zeigt, wie Sie IronOCR verwenden können, um Text aus einer Quittung zu extrahieren und wie die OCR von Quittungen funktioniert.

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

Using ocrInput As New OcrInput("ocr.png")
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	Dim RecognizedText As String = ocrResult.Text

	Console.WriteLine(RecognizedText)
End Using
$vbLabelText   $csharpLabel

Bitte beachten Sie das Tutorial zum Lesen von Text aus einem Bild für weitere Einzelheiten dazu, wie IronOCR Text aus Bildern unter Verwendung der C#-Programmiersprache liest.

Die Ausgabe des oben dargestellten Codes ist unten zu sehen:

- LOGO SHOP
- LOREM IPSUM
- DOLOR SITAMET 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 SEMNISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISIRISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

6. Spezifische Datenextraktion aus dem Bild einer Quittung mit IronOCR

IronOCR ist eine leistungsstarke OCR-Bibliothek, die es Entwicklern ermöglicht, wichtige Informationen aus gescannten Quittungen zu gewinnen, z. B. den Steuerbetrag und den Händlernamen.

Hier ein Beispiel, wie Sie IronOCR verwenden können, um den Gesamtbetrag aus einem Quittungsbild zu extrahieren:

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to 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 price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to 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 price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

ocrTesseract.Language = OcrLanguage.English

' Code line to 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 price in the OCR result
	Dim totalPrice = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
	Console.WriteLine("Total Price: " & totalPrice)
End Using
$vbLabelText   $csharpLabel

Dank der vielfältigen Einstellungen, die von der OcrInput-Klasse bereitgestellt werden, ist es möglich, das Eingabebild für eine bessere Genauigkeit im OCR-Prozess zu optimieren.

Eingabe

Wie man Text aus einer Rechnung in C# extrahiert, Abbildung 4: Das Eingabebild, das zur Demonstration der Extraktion spezifischer Daten aus Belegen verwendet wird

Das Eingabebild, das zur Demonstration der Extraktion spezifischer Daten von Belegen verwendet wird

Ausgabe

- Total 16.5

7. Barcodes auf Quittungen lesen

IronOCR kann sowohl Barcodes auf Quittungen als auch Text lesen. Um Barcodes auf Quittungen mit IronOCR zu lesen, müssen Sie die BarcodeReader-Klasse in Kombination mit der ReadBarCodes-Methode verwenden.

Hier ein Beispiel dafür, wie Sie IronOCR zum Lesen von Strichcodes auf einem Quittungsbild verwenden können.

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Using ocrInput As New OcrInput("b.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine(barcode.Value)
	Next barcode
End Using
$vbLabelText   $csharpLabel

Eingabe Bild

Wie man Text aus einer Rechnung in C# erhält, Abbildung 4: Eingabe zum Lesen von Barcodes

Eingabe zum Lesen des Barcodes

Text ausgeben

Wie man Text aus einer Rechnung im C#-Tutorial extrahiert, Abbildung 5: Das Ergebnis der Verarbeitung des Barcodes-Bildes

Das Ergebnis der Verarbeitung des Barcode-Bildes

8. Schlussfolgerung

Der obige Artikel erklärt die Installation und Verwendung von IronOCR in einem C#-Projekt, um Daten aus Quittungen zu extrahieren, und enthält ein Beispiel-Code-Snippet.

Bitte lesen Sie das Tutorial zum Lesen von Text aus Bildern.

IronOCR ist Teil der Iron Suite, die fünf verschiedene .NET-Bibliotheken zur Manipulation von Dokumenten und Bildern umfasst. Sie können das gesamte Iron Suite zum Preis von nur zwei IronOCR-Lizenzen kaufen.

Probieren Sie IronOCR in Ihren Produktionsanwendungen mit einer kostenlosen Testversion aus.

Kannaopat Udonpant
Software-Ingenieur
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS
OCR von Nummernschildern in C# (Anleitung)
NÄCHSTES >
Wie OCR Text aus einem Screenshot in C# abrufen kann