UTILISATION D'IRONBARCODE

Comment utiliser un SDK de numérisation de documents dans une application MAUI .NET

Publié avril 29, 2024
Partager:

Avec l'essor de la technologie mobile, les applications de numérisation de documents telles que Scanbot SDK et Native SDK sont devenues des outils indispensables ou des experts en solutions pour les particuliers comme pour les entreprises. Dans ce tutoriel, nous verrons comment créer une application de numérisation de documents à l'aide de la dernière version de .NET Multi-platform App UI(MAUI) et IronOCR, un puissant outil d'OCR(Reconnaissance optique de caractères) pour .NET. .NET MAUI simplifie la création d'applications mobiles multiplateformes telles qu'Android, garantissant un déploiement transparent sur l'appareil de l'utilisateur final. À la fin de ce guide, vous serez en mesure de développer votre propre application SDK de scanner de documents, capable d'extraire facilement du texte à partir d'images et de fichiers numérisés.

Comment utiliser un SDK de numérisation de documents dans une application MAUI .NET

  1. Installez la bibliothèque C# d'IronOCR** pour utiliser le SDK de numérisation de documents.

  2. Concevoir un formulaire MAUI .NET avec les contrôles nécessaires.

  3. Capturez le cadre photo en utilisant la méthode MediaPicker.CapturePhotoAsync.

  4. Convertir la photo capturée en Stream.

  5. Transmettre le flux à la méthode LoadImage d'OcrInput.

  6. Effectuer l'OCR en utilisant la méthode Lire d'IronTesseract.

  7. Afficher le texte du document à l'aide de la propriété Text d'OcrResult.

IronOCR - La bibliothèque C&num ; OCR

IronOCR est un système de reconnaissance optique de caractères de pointe(OCR) logiciel développé par Iron Software, LLC, conçu pour convertir avec précision et efficacité des images et des documents scannés en texte éditable. La technologie OCR a révolutionné la manière dont les entreprises traitent les documents, en facilitant l'extraction d'informations précieuses à partir de diverses sources telles que les documents numérisés, les PDF et les images.

IronOCR se distingue des autres solutions d'OCR par ses fonctionnalités avancées, ses performances robustes et sa facilité d'intégration. Que vous soyez un développeur cherchant à intégrer des fonctions d'OCR dans vos applications ou une entreprise cherchant à rationaliser les processus de gestion des documents générés par les données, IronOCR offre une solution complète.

Principales caractéristiques de l'IronOCR

Voici quelques caractéristiques importantes de l'IronOCR :

  1. Haute précision: IronOCR utilise des algorithmes de pointe et des techniques d'apprentissage automatique pour atteindre une précision exceptionnelle dans la reconnaissance de texte. Il peut extraire avec précision du texte à partir de documents complexes, y compris des images à faible résolution QR ou des numérisations de mauvaise qualité.

  2. **L'une des caractéristiques les plus remarquables d'IronOCR est sa prise en charge étendue des langues. Il peut reconnaître des textes dans plus de 127 langues, ce qui le rend adapté aux entreprises opérant dans des environnements linguistiques divers.

  3. Traitement d'image: Pour améliorer la précision, IronOCR fournit diverses capacités de traitement d'image, telles que la réduction du bruit, l'ajustement du contraste et le désalignement. Ces techniques de prétraitement permettent d'améliorer les résultats de l'OCR, en particulier lorsqu'il s'agit d'images déformées ou imparfaites.

  4. Prise en charge de divers formats de fichiers: IronOCR prend en charge un large éventail de formats de fichiers, notamment TIFF, JPEG, PNG et PDF. Cette flexibilité permet aux utilisateurs de traiter des documents provenant de différentes sources sans se soucier des problèmes de compatibilité.

  5. Options de personnalisation: Les développeurs peuvent personnaliser le comportement d'IronOCR en fonction de leurs besoins spécifiques. Qu'il s'agisse d'affiner les paramètres de reconnaissance ou de s'intégrer aux flux de travail existants, IronOCR offre un haut degré de flexibilité et de personnalisation.

  6. Rapide et évolutif: IronOCR est optimisé pour la performance, permettant une extraction de texte rapide même à partir de grands volumes de documents. Son architecture évolutive garantit un fonctionnement sans faille, qu'il s'agisse de traiter une poignée de documents ou de gérer des référentiels documentaires massifs.

  7. Intégration avec les applications .NET: IronOCR s'intègre de manière transparente aux applications .NET, offrant aux développeurs des API et des bibliothèques faciles à utiliser pour incorporer la fonctionnalité OCR dans leurs projets logiciels. Cette intégration étroite simplifie le développement et accélère la mise sur le marché des applications basées sur l'OCR.

  8. Classification des documents et extraction des données: Au-delà de la reconnaissance de texte de base, IronOCR offre des fonctions avancées de classification des documents et d'extraction des données. Il peut identifier des champs de données spécifiques dans les documents, tels que les noms, les adresses ou les numéros de facture, ce qui permet l'extraction et l'analyse automatisées des données.

Conditions préalables

  • Connaissance de base de la programmation en C#.
  • Visual Studio 2022 dernière version installée sur votre système avec la charge de travail .NET MAUI.
  • Bibliothèque de paquets IronOCR installée via le gestionnaire de paquets NuGet.

1. Configuration de votre projet .NET MAUI

  • Ouvrez Visual Studio 2022 et créez un nouveau projet .NET MAUI App.

    Comment utiliser un SDK de scanner de documents dans une application .NET MAUI : Figure 1 - Projet d'application .NET MAUI

  • Choisissez un nom de projet approprié et configurez les paramètres de votre projet.

    Comment utiliser un SDK de scanner de documents dans une application .NET MAUI : Figure 2 - Configuration du projet

  • Assurez-vous d'avoir installé les SDK Android et iOS nécessaires au développement de la plate-forme cible.

2. Installation de la bibliothèque IronOCR

  • Cliquez avec le bouton droit de la souris sur votre solution dans Visual Studio.

    • Sélectionnez "Manage NuGet Packages for Solutions" et dans l'onglet "Browse", recherchez "IronOCR".

    Comment utiliser un SDK de scanner de documents dans une application .NET MAUI : Figure 3 - Paquet NuGet IronOCR

  • Installez la bibliothèque IronOCR dans votre projet.

3. Conception de l'interface utilisateur

Commençons par concevoir la disposition de notre MainPage.xaml. Nous allons créer une présentation simple avec un contrôle d'image pour afficher la photo capturée, un bouton Capture pour prendre des photos et une étiquette pour afficher le texte extrait.

Voici le code XAML de 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>
VB   C#

Dans cette mise en page :

  • Nous utilisons un VerticalStackLayout pour empiler les contrôles verticalement.
  • Le contrôle Image nommé capturedImage est utilisé pour afficher la photo capturée.
  • Le contrôle Button déclenche le gestionnaire d'événement OnCaptureClicked lorsqu'il est cliqué.
  • Le contrôle Label nommé textLabel est utilisé pour afficher le texte extrait.

Sortie

Comment utiliser un SDK de scanner de documents dans une application .NET MAUI : Figure 4 - Sortie de MainPage.xaml

4. Mise en œuvre de la fonctionnalité de numérisation des documents

Pour intégrer la fonctionnalité d'extraction de texte dans notre application .NET de numérisation de documents MAUI, nous allons suivre les étapes suivantes :

  1. Utiliser l'API de la caméra : Commencez par exploiter l'API de caméra fournie par .NET MAUI pour capturer des fichiers d'images directement dans votre application.

  2. Passer l'image à IronOCR : Une fois l'image capturée, transmettez-la à IronOCR, une puissante bibliothèque d'OCR, pour l'extraction de texte. IronOCR offre une fonctionnalité robuste pour l'extraction de texte à partir d'images avec une grande précision.

  3. Afficher le texte extrait : Enfin, affichez le texte extrait dans la zone désignée de l'interface utilisateur de votre application. Cela permet aux utilisateurs de visualiser facilement le texte extrait de l'image capturée ou du code QR.

    Voici l'extrait de code correspondant qui met en œuvre ces étapes :

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
VB   C#

Explication du code

Décomposons le code étape par étape :

  • Dans le fichier MainPage.xaml.cs, nous définissons la méthode OnCaptureClicked, qui sera déclenchée lorsque l'utilisateur cliquera sur le bouton Capture.
  • Dans la méthode OnCaptureClicked, nous définissons d'abord la clé de licence IronOCR. Ceci est nécessaire pour utiliser la bibliothèque IronOCR. Remplacez "YOUR-LICENSE-KEY-HERE " par votre véritable clé de licence.
  • Ensuite, nous demandons les autorisations pour la caméra en utilisant Permissions.RequestAsync(). Cela permet de s'assurer que l'application dispose des autorisations nécessaires pour accéder à l'appareil photo de l'appareil.
  • Nous utilisons MediaPicker.CapturePhotoAsync() pour prendre une photo à l'aide de l'appareil photo de l'appareil. Si une photo est capturée avec succès, nous l'affichons dans un contrôle Image nommé cameraPreview.
  • Nous ouvrons un flux à partir de la photo capturée et l'utilisons comme entrée pour l'OCR à l'aide d'IronOCR. Nous créons une instance de IronTesseract, chargeons le flux d'images dans un objet OcrInput, puis appelons la méthode Read pour effectuer l'OCR.
  • Si le texte est extrait avec succès, nous l'affichons dans un contrôle Label nommé textLabel. Si aucun texte n'est détecté, nous affichons un message d'erreur à l'aide de DisplayAlert.

    Pour une utilisation plus robuste d'IronOCR et des détails sur le code, consultez cette pageexemples de code page.

5. Test de l'application Scanner de documents

  • Exécuter l'application sur différentes plates-formes(Android, iOS et Windows) afin d'assurer la compatibilité entre les plates-formes.
  • Testez différents scénarios, comme la numérisation de documents avec différentes polices, tailles et orientations.
  • Vérifier que le texte extrait est exact et qu'il s'affiche correctement sur l'interface utilisateur.

Sortie - Document numérisé sans texte

Comment utiliser un SDK de numérisation de documents dans une application .NET MAUI : Figure 5 - Sortie de la création d'un PDF numérisé

Sortie - Document numérisé avec texte

Comment utiliser un SDK de numérisation de documents dans une application .NET MAUI : Figure 6 - Documentation numérisée

Conclusion

En suivant ce tutoriel, vous avez appris à utiliser le SDK du scanner de documents IronOCR dans .NET MAUI. Les applications de numérisation de documents ont de nombreuses applications pratiques, allant de la numérisation de documents papier à l'extraction d'informations stockées dans des reçus et des factures. Grâce aux puissantes capacités d'IronOCR et à la flexibilité de .NET MAUI, vous pouvez créer des applications de numérisation de documents riches en fonctionnalités qui répondent à divers cas d'utilisation. Expérimentez différentes fonctionnalités, explorez d'autres bibliothèques et continuez à perfectionner vos compétences pour créer des applications encore plus impressionnantes.

Pour de plus amples informations sur les capacités de l'IronOCR, veuillez consulter le site suivantdocumentation page.

L'IronOCR fournit uneessai gratuit pour tester l'ensemble de ses fonctionnalités en mode commercial. Sa lumière perpétuellelicense à partir de 749 $. Télécharger la bibliothèque à partir detéléchargement page et essayez-le.

< PRÉCÉDENT
Étapes de création de l'API du lecteur de codes-barres pour l'application WEB
SUIVANT >
Création d'une application Web Razor Barcode Generator