IRONOCR VERWENDEN

Erstellen eines OCR-Bon-Scanners in C#

Kannaopat Udonpant
Kannapat Udonpant
18. Februar 2024
Teilen Sie:

Dieses Tutorial soll Anfängern helfen, einen OCR-Belegscanner mithilfe von IronOCR, einer OCR-API in C#, zu erstellen. Am Ende dieses Leitfadens werden Sie verstehen, wie man optische Zeichenerkennung (OCR) implementiert, um verschiedene Arten von Belegdateien in bearbeitbare und durchsuchbare Daten mit Hilfe der Receipt OCR API umzuwandeln. Diese Technologie kann für Unternehmen, die ihr Ausgabenmanagement automatisieren und die manuelle Dateneingabe minimieren wollen, einen entscheidenden Unterschied machen. Lass uns beginnen!

Wie erstellt man einen OCR-Rechnungsscanner in C#? 1. Erstellen Sie ein C#-Konsolenprojekt in Visual Studio

  1. Installieren Sie die OCR-Bibliothek mit NuGet Package Manager3. Laden Sie den Beleg mit der Methode OcrInput in das Programm

  2. Extrahieren Sie den Text mit der Read-Methode5. Extrahierten Text auf der Konsole anzeigen

Voraussetzungen

Bevor wir mit der Codierung beginnen, sollten Sie Folgendes sicherstellen:

  1. Visual Studio: Dies wird unsere Integrierte Entwicklungsumgebung (IDE) sein, in der wir unseren C#-Code schreiben und ausführen werden.

  2. IronOCR-Bibliothek: Wir werden IronOCR verwenden, eine fortschrittliche OCR-Bibliothek, die sich leicht in C#-Anwendungen integrieren lässt.

    1. Beispielquittung: Eine Quittungsbilddatei mit dem Namen Sample_Receipt.jpg, die wir verwenden werden, um unsere OCR-Implementierung zu testen.

    Wie man einen OCR-Belegscanner in C# erstellt: Abbildung 1 - Bild eines Musterbelegs

Schritt 1: Einrichten des Projekts

Visual Studio öffnen: Suchen Sie das Visual Studio-Symbol auf Ihrem Desktop oder im Anwendungsmenü und doppelklicken Sie darauf, um das Programm zu öffnen.

Ein neues Projekt erstellen: Sobald Visual Studio geöffnet ist, finden Sie ein Startfenster. Klicken Sie auf die Schaltfläche "Ein neues Projekt erstellen". Wenn Sie Visual Studio bereits geöffnet haben und das Startfenster nicht angezeigt wird, können Sie es aufrufen, indem Sie im oberen Menü auf Datei > Neu > Projekt klicken.

Projekttyp auswählen: Im Fenster „Neues Projekt erstellen“ sehen Sie eine Vielzahl von Projektschablonen. Geben Sie im Suchfeld „Console App“ ein, um die Optionen zu filtern, und wählen Sie dann je nach Vorliebe und Kompatibilität entweder Console App (.NET Core) oder Console App (.NET Framework) aus. Klicken Sie dann auf die Schaltfläche Weiter.

Konfigurieren Sie Ihr neues Projekt: Jetzt sehen Sie einen Bildschirm mit dem Titel "Konfigurieren Sie Ihr neues Projekt".

  • Geben Sie im Feld Projektname den Namen OCRReceiptScanner für Ihr Projekt ein.
  • Wählen oder bestätigen Sie den Ort, an dem Ihr Projekt gespeichert werden soll, im Feld Ort.
  • Optional können Sie auch einen Lösungsnamen angeben, wenn er sich vom Projektnamen unterscheiden soll.
  • Klicken Sie auf die Schaltfläche Weiter, nachdem Sie diese Details ausgefüllt haben.

    Zusätzliche Informationen: Möglicherweise werden Sie aufgefordert, das Ziel-.NET-Framework auszuwählen. Wählen Sie die neueste Version (es sei denn, Sie haben spezifische Kompatibilitätsanforderungen) und klicken Sie auf Erstellen.

Schritt 2: Integration von IronOCR

Bevor wir die IronOCR-Bibliothek verwenden können, müssen wir sie in unser Projekt aufnehmen. Folgen Sie diesen Schritten:

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer.

  2. Wählen Sie "NuGet-Pakete verwalten".

  3. Im NuGet-Paket-Manager-Fenster sehen Sie mehrere Registerkarten wie Durchsuchen, Installiert, Aktualisierungen und Konsolidieren. Klicken Sie auf die Registerkarte Durchsuchen.

  4. Geben Sie im Suchfeld IronOcr ein. Dies ist der Name der Bibliothek, die wir zu unserem Projekt hinzufügen möchten. Drücken Sie zum Suchen die Eingabetaste.

  5. In den Suchergebnissen wird das IronOCR-Bibliothekspaket angezeigt. Es sollte eines der ersten Ergebnisse sein, das Sie sehen. Klicken Sie sie an, um sie auszuwählen.

  6. Nachdem Sie das IronOCR-Paket ausgewählt haben, sehen Sie auf der rechten Seite ein Fenster, das Informationen über das Paket anzeigt, einschließlich seiner Beschreibung und Version. In diesem Bereich gibt es auch eine Installieren-Schaltfläche.

    So erstellen Sie einen OCR-Belegscanner in C#: Abbildung 2 - Installation von IronOCR über den NuGet-Paketmanager

  7. Klicken Sie auf die Schaltfläche Installieren. Diese Aktion kann Sie dazu auffordern, Änderungen zu überprüfen und eine Liste von Abhängigkeiten anzeigen, die zusammen mit IronOcr einbezogen werden. Überprüfen Sie die Änderungen und Abhängigkeiten, und wenn alles korrekt aussieht, bestätigen Sie und fahren Sie mit der Installation fort.

Schritt 3: Konfigurieren des Projekts

Nach der Installation von IronOCR müssen Sie als nächstes Ihr Projekt konfigurieren. So geht's:

Namenräume hinzufügen: Fügen Sie am Anfang Ihrer Program.cs-Datei die folgenden Namespaces hinzu:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
$vbLabelText   $csharpLabel

Konfigurationseinstellungen: Wenn Sie Konfigurationseinstellungen wie einen API-Schlüssel oder einen Lizenzschlüssel haben, stellen Sie sicher, dass Sie diese einbeziehen. Für IronOCR müssen Sie den Lizenzschlüssel wie im mitgelieferten Code angegeben festlegen:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
$vbLabelText   $csharpLabel

Schritt 4: Lesen der Quittung

Schreiben wir nun den Code zum Lesen der Quittung.

Definieren Sie den Pfad zu Ihrem Beleg: Geben Sie den Pfad zur Belegdatei an, die Sie scannen möchten.

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
$vbLabelText   $csharpLabel

Try-Catch-Block: Implementieren Sie die Fehlerbehandlung mit einem Try-Catch-Block. Dies hilft Ihnen bei der Verwaltung von Ausnahmen, die während des OCR-Prozesses auftreten.

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Schritt 5: OCR implementieren

In Schritt 5 befassen wir uns mit der Kernfunktionalität unserer Anwendung: der Implementierung von OCR zum Lesen und Interpretieren der Daten von unserem Beleg. Dazu gehören die Initialisierung der OCR-Engine, die Konfiguration der Eingabe, die Durchführung des OCR-Vorgangs und die Anzeige der Ergebnisse.

IronTesseract initialisieren

Der erste Teil des Codes erstellt eine Instanz der IronTesseract-Klasse:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
$vbLabelText   $csharpLabel

Indem wir eine Instanz von IronTesseract erstellen, richten wir im Wesentlichen unser OCR-Tool ein und machen es bereit, um die Texterkennung durchzuführen. Das ist so, als würde man den Motor eines Autos starten, bevor man es fahren kann. Dieses Objekt wird zur Steuerung des OCR-Prozesses verwendet, einschließlich des Lesens der Eingabe und des Extrahierens von Text aus der Eingabe.

OCR-Eingabe konfigurieren

Als Nächstes definieren wir den Input für unser OCR-Verfahren:

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
$vbLabelText   $csharpLabel

In diesem Abschnitt wird OcrInput verwendet, um die Datei anzugeben, die wir verarbeiten möchten. pdfFilePath ist eine Variable, die den Pfad zu unserer Belegdatei enthält. Indem wir diese Variable an OcrInput übergeben, teilen wir der OCR-Engine mit: "Hier ist die Datei, die du lesen sollst." Die Anweisung using ist eine spezielle C#-Konstruktion, die sicherstellt, dass die von OcrInput verwendeten Ressourcen (wie Dateihandles) ordnungsgemäß freigegeben werden, sobald die Verarbeitung abgeschlossen ist. So können Sie Ressourcen effizient verwalten und sicherstellen, dass Ihre Anwendung reibungslos und ohne unnötigen Speicherverbrauch läuft.

OCR durchführen

Innerhalb des using-Blocks rufen wir die Read-Methode auf unserer ocr-Instanz auf:

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

Die Read-Methode nimmt den Dateipfad als Parameter. Mit dieser Zeile wird das Scannen des Bons gestartet. Es führt die OCR der angegebenen Eingabedatei durch, extrahiert Daten und speichert sie in einer Ergebnisvariablen. Wir können den extrahierten Text aus dieser Methode verwenden, um eine beliebige Textoperation durchzuführen.

Ausgabe der Ergebnisse

Schließlich geben wir den Text aus, der durch den OCR-Prozess erkannt wurde:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

Die result-Variable enthält die Ausgabe des OCR-Prozesses und result.Text enthält den tatsächlich aus dem Beleg extrahierten Text. Die Funktion Console.WriteLine nimmt dann diesen Text und zeigt ihn auf der Konsole an. So können Sie die Ergebnisse des OCR-Prozesses sehen und überprüfen. Hier ist der vollständige Code der Datei Program.cs:

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Schritt 6: Ausführen Ihrer Anwendung

  1. Projekt erstellen: Klicken Sie auf das Menü 'Erstellen' und wählen Sie dann 'Lösung erstellen' aus.

  2. Projekt ausführen: Drücken Sie F5 oder klicken Sie auf die Schaltfläche „Start“, um Ihre Anwendung auszuführen.

    Jetzt sehen Sie den Text Ihrer Quittung in der Konsole. Dieser Text stellt die Daten dar, die aus dem Bild Ihrer Quittung extrahiert wurden. So scannen wir mit IronOCR die Belege. Dies ist ein einfaches Beispiel für die Verwendung von OCR-Funktionen zur Extraktion von Daten aus Papierquittungen. Es ist eine sehr generische Implementierung. Sie können Ihren Code so ändern, dass er dem Layout Ihrer Quittungsbilder entspricht.

    Wie man einen OCR-Belegscanner in C# erstellt: Abbildung 3 - Ausgegebener Text aus dem vorherigen Codebeispiel

    Danach können Sie die unstrukturierten Daten von Quittungen verwenden, die wir nach dem Scannen von Quittungen erhalten haben. Wir können wichtige Informationen aus einem bestimmten Abschnitt des Belegs abrufen. Oder wir können die Quittungsdaten in einer übersichtlicheren Form anzeigen. Mit IronOCR können wir eine OCR-Software zum Scannen von Quittungen entwickeln. Das wird uns helfen, genaue Daten der Empfangsfelder zu extrahieren.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben erfolgreich einen OCR-Quittungsscanner mit C# und IronOCR erstellt. Dieser Scanner kann die Genauigkeit der Datenextraktion für verschiedene Geschäftsanforderungen wie z. B. Ausgabenverfolgung, Lieferkettenmanagement usw. erheblich verbessern. Es ist nicht mehr nötig, die gescannten Belege zu überprüfen und Daten manuell zu extrahieren.

IronOCR bietet eine kostenlose Testversion, die es den Nutzern ermöglicht, seine Fähigkeiten ohne anfängliche Kosten zu erkunden und zu bewerten. Für diejenigen, die die gesamte Bandbreite der Funktionen in einer professionellen Umgebung integrieren und nutzen möchten, beginnen Lizenzen bei $749, und bieten eine umfassende Lösung für anspruchsvolle OCR-Belegs-Scans und Datenextraktionsbedürfnisse.

Denken Sie daran, dass dies erst der Anfang ist. Sie können diese Anwendung erweitern, um verschiedene Dateitypen zu unterstützen, den Datenschutz zu verbessern oder zusätzliche Funktionen zu integrieren, wie z. B. die Erkennung von Belegen für bestimmte Felder, wie z. B. den Steuerbetrag, das Datum, die Einzelposten und mehr. Mit der OCR-Technologie sind die Möglichkeiten enorm und ebnen den Weg für effizientere und intelligentere Geschäftsprozesse. Viel Spaß beim Programmieren!

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
Lesen von Identitätsdokumenten mit OCR in C#
NÄCHSTES >
Wie man eine OCR-Lösung für Rechnungen erstellt