IRONBARCODE VERWENDEN

Verwendung eines Dokumentenscanner-SDKs in einer .NET MAUI-Anwendung

Jordi Bardia
Jordi Bardia
29. April 2024
Teilen Sie:

Mit dem Aufstieg der mobilen Technologie sind Dokumentenscan-Apps wie Scanbot SDK und Native SDKs für Privatpersonen und Unternehmen gleichermaßen unverzichtbare Werkzeuge oder Lösungsanbieter geworden. In diesem Tutorial werden wir untersuchen, wie man eine Dokumentenscanner-App mit der neuesten Version von .NET Multi-platform App UI (MAUI) und IronOCR, einer leistungsstarken OCR (Optical Character Recognition) Bibliothek für .NET, erstellt. .NET MAUI vereinfacht die Erstellung plattformübergreifender mobiler Anwendungen wie Android und gewährleistet eine nahtlose Bereitstellung auf dem Gerät des Endbenutzers. Am Ende dieses Leitfadens werden Sie in der Lage sein, Ihre eigene Dokumentenscanner-SDK-Anwendung zu entwickeln, die problemlos Text aus Bildern und gescannten Dateien extrahieren kann.

Verwendung eines Dokumentenscanner-SDKs in einer .NET MAUI-Anwendung

  1. Installieren Sie die IronOCR C#-Bibliothek, um das Document Scanner SDK zu verwenden.

  2. Entwerfen Sie ein .NET MAUI-Formular mit den erforderlichen Steuerelementen.

  3. Fotoaufnahme mit der MediaPicker.CapturePhotoAsync-Methode.

  4. Wandle das aufgenommene Foto in einen Stream um.

  5. Übergeben Sie den Stream an die LoadImage-Methode von OcrInput.

  6. Führen Sie OCR mit der Read-Methode von IronTesseract durch.

  7. Zeigen Sie den Dokumenttext mithilfe der OcrResult-Text-Eigenschaft an.

IronOCR - Die C# OCR-Bibliothek

IronOCR ist eine hochmoderne Optical Character Recognition (OCR) Software, die von Iron Software, LLC entwickelt wurde. Sie ist darauf ausgelegt, Bilder und gescannte Dokumente präzise und effizient in bearbeitbaren Text umzuwandeln. Die OCR-Technologie hat die Art und Weise, wie Unternehmen ihre Dokumente verarbeiten, revolutioniert und erleichtert die Extraktion wertvoller Informationen aus verschiedenen Quellen wie gescannten Dokumenten, PDF-Dateien und Bildern.

IronOCR zeichnet sich unter den OCR-Lösungen durch seine fortschrittlichen Funktionen, seine robuste Leistung und seine einfache Integration aus. Egal, ob Sie ein Entwickler sind, der OCR-Funktionen in seine Anwendungen integrieren möchte, oder ein Unternehmen, das datengenerierte Dokumentenmanagementprozesse rationalisieren möchte - IronOCR bietet eine umfassende Lösung.

Hauptmerkmale von IronOCR

Hier sind einige wichtige Merkmale von IronOCR:

  1. Hohe Genauigkeit: IronOCR verwendet hochmoderne Algorithmen und maschinelle Lerntechniken, um außergewöhnliche Genauigkeit bei der Texterkennung zu erreichen. Es kann Text aus komplexen Dokumenten genau extrahieren, auch aus Bildern mit geringer QR-Auflösung oder schlechter Scanqualität.

  2. Unterstützung für mehrere Sprachen: Eine der herausragenden Eigenschaften von IronOCR ist seine umfassende Sprachunterstützung. Es kann Text in über 127 Sprachen erkennen und eignet sich daher für Unternehmen, die in unterschiedlichen Sprachumgebungen tätig sind.

  3. Bildvorverarbeitung: Um die Genauigkeit zu verbessern, bietet IronOCR verschiedene Bildvorverarbeitungsfunktionen wie Rauschunterdrückung, Kontrasteinstellung und Entzerrung. Diese Vorverarbeitungstechniken tragen zur Verbesserung der OCR-Ergebnisse bei, insbesondere bei verzerrten oder unvollkommenen Bildern.

  4. Unterstützung für verschiedene Dateiformate: IronOCR unterstützt eine Vielzahl von Dateiformaten, darunter TIFF, JPEG, PNG und PDF. Diese Flexibilität ermöglicht es den Benutzern, Dokumente aus verschiedenen Quellen zu verarbeiten, ohne sich Gedanken über Kompatibilitätsprobleme zu machen.

  5. Anpassungsoptionen: Entwickler können das Verhalten von IronOCR an ihre spezifischen Anforderungen anpassen. Ob es um die Feinabstimmung von Erkennungsparametern oder die Integration in bestehende Arbeitsabläufe geht, IronOCR bietet ein hohes Maß an Flexibilität und Anpassungsfähigkeit.

  6. Schnell und skalierbar: IronOCR ist für Leistung optimiert und ermöglicht eine schnelle Textextraktion selbst bei großen Dokumentenmengen. Die skalierbare Architektur gewährleistet einen nahtlosen Betrieb, unabhängig davon, ob Sie nur eine Handvoll Dokumente verarbeiten oder riesige Dokumentensammlungen bearbeiten.

  7. Integration mit .NET-Anwendungen: IronOCR integriert sich nahtlos in .NET-Anwendungen und bietet Entwicklern benutzerfreundliche APIs und Bibliotheken zur Einbindung von OCR-Funktionen in ihre Softwareprojekte. Diese enge Integration vereinfacht die Entwicklung und beschleunigt die Markteinführung von OCR-fähigen Anwendungen.

  8. Dokumentklassifizierung und Datenauszug: Über die grundlegende Texterkennung hinaus bietet IronOCR erweiterte Funktionen zur Dokumentklassifizierung und Datenauswertung. Es kann bestimmte Datenfelder in Dokumenten identifizieren, z. B. Namen, Adressen oder Rechnungsnummern, was eine automatische Datenextraktion und -analyse ermöglicht.

Voraussetzungen

  • Grundkenntnisse in der C#-Programmierung.
  • Visual Studio 2022 in der neuesten Version mit dem .NET MAUI-Workload auf Ihrem System installiert.
  • IronOCR-Paketbibliothek, die über den NuGet Package Manager installiert wurde.

1. Einrichten Ihres .NET MAUI-Projekts

  • Öffnen Sie Visual Studio 2022 und erstellen Sie ein neues .NET MAUI App-Projekt.

    Verwendung eines Dokumentenscanner-SDKs in einer .NET MAUI-Anwendung: Abbildung 1 - .NET MAUI App-Projekt

  • Wählen Sie einen geeigneten Projektnamen und konfigurieren Sie Ihre Projekteinstellungen.

    Verwendung eines Document Scanner SDK in einer .NET MAUI-Anwendung: Abbildung 2 - Projekteinstellungen

  • Stellen Sie sicher, dass Sie die erforderlichen Android- und iOS-SDKs für die Entwicklung von Zielplattformen installiert haben.

2. Installation der IronOCR-Bibliothek

  • Klicken Sie mit der rechten Maustaste auf Ihre Projektmappe in Visual Studio.

    • Wählen Sie "Manage NuGet Packages for Solutions" und suchen Sie auf der Registerkarte Browse nach "IronOCR".

    Wie man ein Document Scanner SDK in einer .NET MAUI Anwendung verwendet: Abbildung 3 - IronOCR NuGet-Paket

  • Installieren Sie die IronOCR-Bibliothek in Ihrem Projekt.

3. Entwerfen der UI

Beginnen wir mit dem Entwurf des Layouts unserer MainPage.xaml. Wir erstellen ein einfaches Layout mit einem Bildsteuerelement zur Anzeige des aufgenommenen Fotos, einer Aufnahmetaste zur Aufnahme von Fotos und einem Label zur Anzeige des extrahierten Textes.

Hier ist der XAML-Code für MainPage.xaml:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design"
             x:Class="DocumentScanner.MainPage">
    <ScrollView>
        <VerticalStackLayout
            Padding="30,0"
            Spacing="25">
            <Image
                Source="dotnet_bot.png"
                HeightRequest="185"
                Aspect="AspectFit"
                SemanticProperties.Description="dot net bot in a race car number eight" />
            <Label
                Text="Welcome to .NET MAUI Document Scanner SDK"
                Style="{StaticResource Headline}"
                SemanticProperties.HeadingLevel="Level1" />
            <Label
                Text="Using IronOCR"
                Style="{StaticResource SubHeadline}"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" />
            <!-- Camera preview -->
            <Image x:Name="cameraPreview" />
            <!-- Capture button -->
            <Button Text="Capture" Clicked="OnCaptureClicked" />
            <!-- Text display area -->
            <Label x:Name="textLabel"
                   Text="Recognized Text:"/>
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>
XML

In diesem Layout:

  • Wir verwenden ein VerticalStackLayout, um die Steuerelemente vertikal zu stapeln.
  • Das Image-Steuerelement namens capturedImage wird verwendet, um das aufgenommene Foto anzuzeigen.
  • Das Button-Steuerelement löst den OnCaptureClicked-Ereignishandler aus, wenn es geklickt wird.
  • Die Label-Steuerelement mit dem Namen textLabel wird verwendet, um den extrahierten Text anzuzeigen.

Ausgabe

Wie man ein Document Scanner SDK in einer .NET MAUI-Anwendung verwendet: Abbildung 4 - MainPage.xaml Ausgabe

4. Implementierung der Dokumentenscanfunktionalität

Um die Textextraktionsfunktion in unsere .NET MAUI Document Scanning-Anwendung zu integrieren, gehen wir folgendermaßen vor:

  1. Verwenden Sie die Kamera-API: Beginnen Sie damit, die von .NET MAUI bereitgestellte Kamera-API zu nutzen, um Bilddateien direkt innerhalb Ihrer Anwendung zu erfassen.

  2. Bild an IronOCR übergeben: Sobald ein Bild aufgenommen wurde, übergeben Sie es an IronOCR, eine leistungsstarke OCR-Bibliothek, zur Texterkennung. IronOCR bietet robuste Funktionen für die Extraktion von Text aus Bildern mit hoher Genauigkeit.

  3. Extrahierten Text anzeigen: Schließlich zeigen Sie den extrahierten Text im vorgesehenen Bereich der Benutzeroberfläche Ihrer App an. Dadurch können die Benutzer den aus dem erfassten Bild oder QR-Code extrahierten Text einfach anzeigen.

    Hier ist der entsprechende Codeausschnitt, mit dem diese Schritte umgesetzt werden:

using IronOcr;
namespace DocumentScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
        private async void OnCaptureClicked(object sender, EventArgs e)
        {
            License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
            try
            {
                // Request camera permissions
                var status = await Permissions.RequestAsync<Permissions.Camera>();
                if (status == PermissionStatus.Granted)
                {
                    // Take photo
                    var photo = await MediaPicker.CapturePhotoAsync();
                    if (photo != null)
                    {
                        // Display captured photo in Image
                        cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
                        using (var stream = await photo.OpenReadAsync())
                        {
                            // Use a stream from the captured photo for OCR
                            var ocr = new IronTesseract();
                            using var ocrInput = new OcrInput();
                            ocrInput.LoadImage(stream);
                            var ocrResult = ocr.Read(ocrInput);
                            if (string.IsNullOrEmpty(ocrResult.Text))
                            {
                                await DisplayAlert("Error", "No Text Detected!", "OK");
                            }
                            else
                            {
                                await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
                                // Display extracted text
                                textLabel.Text = ocrResult.Text;
                            }
                        }
                    }
                }
                else
                {
                    // Camera permission denied
                    await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
                }
            }
            catch (Exception ex)
            {
                // Handle exception
                await DisplayAlert("Error", ex.Message, "OK");
            }
        }
    }
}
using IronOcr;
namespace DocumentScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
        private async void OnCaptureClicked(object sender, EventArgs e)
        {
            License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
            try
            {
                // Request camera permissions
                var status = await Permissions.RequestAsync<Permissions.Camera>();
                if (status == PermissionStatus.Granted)
                {
                    // Take photo
                    var photo = await MediaPicker.CapturePhotoAsync();
                    if (photo != null)
                    {
                        // Display captured photo in Image
                        cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
                        using (var stream = await photo.OpenReadAsync())
                        {
                            // Use a stream from the captured photo for OCR
                            var ocr = new IronTesseract();
                            using var ocrInput = new OcrInput();
                            ocrInput.LoadImage(stream);
                            var ocrResult = ocr.Read(ocrInput);
                            if (string.IsNullOrEmpty(ocrResult.Text))
                            {
                                await DisplayAlert("Error", "No Text Detected!", "OK");
                            }
                            else
                            {
                                await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
                                // Display extracted text
                                textLabel.Text = ocrResult.Text;
                            }
                        }
                    }
                }
                else
                {
                    // Camera permission denied
                    await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
                }
            }
            catch (Exception ex)
            {
                // Handle exception
                await DisplayAlert("Error", ex.Message, "OK");
            }
        }
    }
}
Imports IronOcr
Namespace DocumentScanner
	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
		End Sub
		Private Async Sub OnCaptureClicked(ByVal sender As Object, ByVal e As EventArgs)
			License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
			Try
				' Request camera permissions
				Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
				If status = PermissionStatus.Granted Then
					' Take photo
					Dim photo = Await MediaPicker.CapturePhotoAsync()
					If photo IsNot Nothing Then
						' Display captured photo in Image
						cameraPreview.Source = ImageSource.FromStream(Function() photo.OpenReadAsync().Result)
						Using stream = Await photo.OpenReadAsync()
							' Use a stream from the captured photo for OCR
							Dim ocr = New IronTesseract()
							Dim ocrInput As New OcrInput()
							ocrInput.LoadImage(stream)
							Dim ocrResult = ocr.Read(ocrInput)
							If String.IsNullOrEmpty(ocrResult.Text) Then
								Await DisplayAlert("Error", "No Text Detected!", "OK")
							Else
								Await DisplayAlert("Text Detected!", ocrResult.Text, "OK")
								' Display extracted text
								textLabel.Text = ocrResult.Text
							End If
						End Using
					End If
				Else
					' Camera permission denied
					Await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK")
				End If
			Catch ex As Exception
				' Handle exception
				Await DisplayAlert("Error", ex.Message, "OK")
			End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Code Erläuterung

Lassen Sie uns den Code Schritt für Schritt aufschlüsseln:

  • In der Datei MainPage.xaml.cs definieren wir die Methode OnCaptureClicked, die ausgelöst wird, wenn der Benutzer auf die Schaltfläche Erfassen klickt.
  • Innerhalb der OnCaptureClicked-Methode setzen wir zuerst den IronOCR-Lizenzschlüssel. Dies ist notwendig, um die IronOCR-Bibliothek zu verwenden. Ersetzen Sie "YOUR-LICENSE-KEY-HERE" durch Ihren tatsächlichen Lizenzschlüssel.
  • Dann fordern wir Kameraberechtigungen an, indem wir Permissions.RequestAsync()verwenden. Dadurch wird sichergestellt, dass die App über die erforderlichen Berechtigungen für den Zugriff auf die Kamera des Geräts verfügt.
  • Wir verwenden MediaPicker.CapturePhotoAsync(), um ein Foto mit der Kamera des Geräts aufzunehmen. Wenn ein Foto erfolgreich aufgenommen wird, zeigen wir es in einem Image-Steuerelement namens cameraPreview an.
  • Wir öffnen einen Stream des aufgenommenen Fotos und verwenden ihn als Eingabe für die OCR mit IronOCR. Wir erstellen eine Instanz von IronTesseract, laden den Bild-Stream in ein OcrInput-Objekt und rufen dann die Read-Methode auf, um OCR durchzuführen.
  • Wenn der Text erfolgreich extrahiert wird, zeigen wir ihn in einem Label-Steuerelement mit dem Namen textLabel an. Wenn kein Text erkannt wird, zeigen wir eine Fehlermeldung mit DisplayAlert an.

    Für die umfassendere Nutzung von IronOCR und weitere Code-Details besuchen Sie diese Seite mit Code-Beispielen.

5. Testen der Dokumentenscanner-App

  • Führen Sie die App auf verschiedenen Plattformen (Android, iOS und Windows) aus, um die plattformübergreifende Kompatibilität sicherzustellen.
  • Testen Sie verschiedene Szenarien, z. B. das Scannen von Dokumenten mit unterschiedlichen Schriftarten, Größen und Ausrichtungen.
  • Überprüfen Sie, ob der extrahierte Text korrekt ist und auf der Benutzeroberfläche richtig angezeigt wird.

Ausgabe - Gescanntes Dokument ohne Text

So verwenden Sie ein Document Scanner SDK in einer .NET MAUI-Anwendung: Abbildung 5 - Ausgabedatei der gescannten PDF-Erstellung

Ausgabe - Gescanntes Dokument mit Text

So verwenden Sie ein Document Scanner SDK in einer .NET MAUI-Anwendung: Abbildung 6 - Gescannte Dokumentation

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie IronOCR Document Scanner SDK in .NET MAUI verwenden können. Anwendungen zum Scannen von Dokumenten haben zahlreiche praktische Anwendungen, von der Digitalisierung von Papierdokumenten bis zur Extraktion gespeicherter Informationen aus Quittungen und Rechnungen. Mit den leistungsstarken Funktionen von IronOCR und der Flexibilität von .NET MAUI können Sie funktionsreiche Dokumentenscanner-Anwendungen für verschiedene Anwendungsfälle erstellen. Experimentieren Sie mit verschiedenen Funktionen, erkunden Sie zusätzliche Bibliotheken und verbessern Sie Ihre Fähigkeiten, um noch beeindruckendere Anwendungen zu erstellen.

Für detailliertere Informationen zu den Fähigkeiten von IronOCR besuchen Sie bitte diese Dokumentations-Seite.

IronOCR bietet eine kostenlose Testversion, um die vollständige Funktionalität im kommerziellen Modus auszuprobieren. Seine dauerhafte Lite-Lizenz beginnt ab $749. Laden Sie die Bibliothek von der Download Seite herunter und probieren Sie es aus.

Jordi Bardia
Software-Ingenieur
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS
Schritte zur Erstellung von Barcode Scanner API für WEB Anwendungen
NÄCHSTES >
Erstellen einer Razor Barcode Generator Web App

Sind Sie bereit, loszulegen? Version: 2025.4 gerade veröffentlicht

Lizenzen anzeigen >