Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Mit dem Aufkommen der mobilen Technologie sind Dokumentenscanner-Apps wie Scanbot SDK und Native SDKs zu unverzichtbaren Tools oder Lösungsexperten für Privatpersonen und Unternehmen geworden. In diesem Tutorial erfahren Sie, wie Sie eine Dokumentenscanner-App mit der neuesten Version von .NET Multiplatform App UI erstellen (MAUI) und IronOCR, eine leistungsstarke OCR (Optische Zeichenerkennung) bibliothek für .NET. .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.
Installieren Sie die IronOCR C# Bibliothek, um das Document Scanner SDK zu verwenden.
Entwerfen Sie ein .NET MAUI-Formular mit den erforderlichen Steuerelementen.
Erfassen Sie den Fotorahmen mit der Methode MediaPicker.CapturePhotoAsync.
Konvertieren Sie das aufgenommene Foto in Stream.
Übergeben Sie den Stream an die Methode OcrInput LoadImage.
OCR mit der IronTesseract-Methode Lesen durchführen.
IronOCR ist eine hochmoderne optische Zeichenerkennung (OCR) von Iron Software, LLC, entwickelte Software, die Bilder und gescannte Dokumente präzise und effizient in bearbeitbaren Text umwandelt. 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.
Hier sind einige wichtige Merkmale von IronOCR:
Hohe Genauigkeit: IronOCR setzt modernste Algorithmen und maschinelle Lerntechniken ein, um eine außergewöhnlich hohe 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.
Mehrsprachige Unterstützung: Eines der herausragenden Merkmale von IronOCR ist die umfangreiche Sprachunterstützung. Es kann Text in über 127 Sprachen erkennen und eignet sich daher für Unternehmen, die in unterschiedlichen Sprachumgebungen tätig sind.
Bildvorverarbeitung: Um die Genauigkeit zu erhöhen, bietet IronOCR verschiedene Bildvorverarbeitungsfunktionen, wie z. B. Rauschunterdrückung, Kontrastanpassung und Entzerrung. Diese Vorverarbeitungstechniken tragen zur Verbesserung der OCR-Ergebnisse bei, insbesondere bei verzerrten oder unvollkommenen Bildern.
Unterstützung verschiedener 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.
Anpassungsmöglichkeiten: 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.
Schnell und skalierbar: IronOCR ist auf Leistung optimiert und ermöglicht eine schnelle Textextraktion auch aus großen Mengen von Dokumenten. Die skalierbare Architektur gewährleistet einen nahtlosen Betrieb, unabhängig davon, ob Sie nur eine Handvoll Dokumente verarbeiten oder riesige Dokumentensammlungen bearbeiten.
Integration mit .NET-Anwendungen: IronOCR lässt sich nahtlos in .NET-Anwendungen integrieren und bietet Entwicklern benutzerfreundliche APIs und Bibliotheken für die Einbindung von OCR-Funktionen in ihre Softwareprojekte. Diese enge Integration vereinfacht die Entwicklung und beschleunigt die Markteinführung von OCR-fähigen Anwendungen.
Öffnen Sie Visual Studio 2022 und erstellen Sie ein neues .NET MAUI App-Projekt.
Wählen Sie einen geeigneten Projektnamen und konfigurieren Sie Ihre Projekteinstellungen.
Klicken Sie mit der rechten Maustaste auf Ihre Projektmappe in Visual Studio.
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 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>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<?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>
In diesem Layout:
Um die Textextraktionsfunktion in unsere .NET MAUI Document Scanning-Anwendung zu integrieren, gehen wir folgendermaßen vor:
Nutzen Sie die Kamera-API: Nutzen Sie zunächst die von .NET MAUI bereitgestellte Kamera-API, um Bilddateien direkt in Ihrer Anwendung zu erfassen.
Bild an IronOCR übergeben: Sobald ein Bild erfasst wurde, übergeben Sie es an IronOCR, eine leistungsstarke OCR-Bibliothek, zur Textextraktion. IronOCR bietet robuste Funktionen für die Extraktion von Text aus Bildern mit hoher Genauigkeit.
Extrahierten Text anzeigen: Zeigen Sie schließlich den extrahierten Text in dem dafür vorgesehenen Bereich auf der Benutzeroberfläche Ihrer Anwendung 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
Lassen Sie uns den Code Schritt für Schritt aufschlüsseln:
Wenn der Text erfolgreich extrahiert wurde, wird er in einem Label-Steuerelement namens textLabel angezeigt. Wenn kein Text gefunden wird, wird mit DisplayAlert eine Fehlermeldung angezeigt.
Für eine robustere Verwendung von IronOCR und Code-Details besuchen Sie diese Codebeispiele seite.
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.
Ausführlichere Informationen zu den Möglichkeiten von IronOCR finden Sie hier Dokumentation seite.
IronOCR bietet eine kostenlos testen um seine vollständige Funktionalität im kommerziellen Modus zu testen. Sein ewiges Licht Lizenz beginnt bei $749. Laden Sie die Bibliothek herunter von Download Seite und probieren Sie es aus.
9 .NET API-Produkte für Ihre Bürodokumente