.NET MAUI Barcode Scanner

This article was translated from English: Does it need improvement?
Translated
View the article in English

Introduction

.NET MAUI (.NET Multi-platform App UI)est un cadre multiplateforme permettant de créer aisément des applications multiplateformes à partir d'une seule base de code. Par exemple, vous pouvez facilement créer des applications Microsoft Windows, iOS et Android dans un seul projet. Ce qui la distingue des autres plateformes, cadres et bibliothèques, c'est la façon dont elle permet à la communauté des développeurs d'utiliser les contrôles natifs dans leurs projets et de leur fournir des composants supplémentaires. Par conséquent, les développeurs peuvent utiliser ces composants et services préfabriqués pour créer des applications plus rapidement sans avoir à écrire chaque aspect du code à partir de zéro.

Dans cet article, nous expliquerons comment intégrer IronBarcode dans une application Windows .NET MAUI pour scanner un code-barres ou un code QR.

IronBarcode : Bibliothèque de codes-barres C

Pour lire les codes-barres dans notre application, nous utiliserons notre bibliothèque IronBarcode .NET. Il offre une API robuste et simple pour lire les codes-barres, permettant le développement sans tracas ni connaissances spécifiques au domaine des codes-barres. Il peut être facilement installé avec le gestionnaire de packages NuGet.

IronBarcode prend en charge une multitude de formats de codes-barres pour la lecture, y compris Code 39, Code 128, PDF417, parmi beaucoup d'autres. Vous pouvez lire à partir d'une variété de formats de données tels que des fichiers image, des flux de mémoire et des PDF.

Étapes pour lire des codes-barres dans une application .NET MAUI

Suivez ces étapes pour lire un code-barres dans une application .NET MAUI.

Conditions préalables

  1. Visual Studio 2022

  2. Un projet .NET MAUI dans Visual Studio

Installer la bibliothèque IronBarcode

Nous pouvons installer la bibliothèque IronBarcode en utilisant la Console du gestionnaire de packages NuGet. Pour ouvrir cette console dans Visual Studio, accédez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages. Ensuite, écrivez la commande suivante dans la console :

Install-Package BarCode

Cette commande de la console télécharge la dernière version de la bibliothèque IronBarcode dans le projet MAUI. Alternativement, vous pouvez également rechercher la dernière version du package NuGet sur leSite web de NuGet.

Front-End

La première étape consistera à créer le design de l'interface utilisateur. Pour cela, nous allons créer une mise en page qui comprend deux boutons, une zone de texte et une boîte à images. Un bouton sera utilisé pour sélectionner le code-barres et un autre pour copier le texte du code-barres. La boîte à images affiche l'image sélectionnée.

Remplacer le contenu du fichier MainPage.xaml par ce qui suit :

<?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"
             x:Class="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Tous les éléments sont empilés verticalement avec la position centrale. Vous pouvez le modifier selon vos préférences.

Scanner de codes-barres avec IronBarcode

Cette section décrit le code permettant de scanner des codes-barres à l'aide de la bibliothèque IronBarcode. Tout d'abord, nous allons utiliser un FilePicker pour sélectionner le fichier et spécifier le type de fichier pour l'image. Ensuite, nous utiliserons la propriété FullPath pour récupérer le chemin d'accès au fichier image, puis nous définirons la source de la boîte d'image à la valeur FullPath. Enfin, nous utiliserons la valeur path dans la fonction Read du BarcodeReader pour récupérer le texte.

private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim imageSource = images.FullPath.ToString()
	barcodeImage.Source = imageSource
	Dim result = BarcodeReader.Read(imageSource).First().Text
	outputText.Text = result
End Sub
VB   C#

Le code ci-dessous sera utilisé pour copier le texte de l'éditeur de texte et afficher un message d'alerte indiquant à l'utilisateur que le texte a été copié.

private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	Await Clipboard.SetTextAsync(outputText.Text)
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
VB   C#

Vous pouvez trouver le code source du projet dans cet article sur GitHub.

Sortie

Après avoir exécuté le projet, vous obtiendrez le résultat suivant. L'image ne s'affiche pas car elle n'est pas encore sélectionnée.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 1 : Sortie lorsqu'aucune image n'est sélectionnée

Sortie lorsqu'aucune image n'est sélectionnée

Lorsque le code-barres est sélectionné, il s'affiche comme sur la capture d'écran ci-dessous, et le texte de sortie du code QR s'affiche dans l'éditeur.

Tutoriel de scanner de code-barres .NET MAUI utilisant IronBarcode - Figure 2 : Résultat après sélection de l'image

Sortie après sélection de l'image

En cliquant sur le bouton Copier, la fenêtre d'alerte mentionnée ci-dessus apparaît.

Tutoriel de scanner de code-barres .NET MAUI avec IronBarcode - Figure 3 : Copier l'alerte

Alerte à la copie

Conclusion

Dans cet article, nous avons expliqué comment lire des codes-barres dans une application .NET MAUI en utilisant IronBarcode. En tant que lecteur de code QR, IronBarcode fonctionne très bien - il fournit le résultat exact attendu. De plus, il peut lire les codes-barres difficiles à lire. Vous pouvez également créer et personnaliser les codes-barres en utilisant différentes polices. Obtenez d'autres tutoriels sur IronBarcode à partir de cette pagelien.

IronBarcode doit être licencié pour le développement et une utilisation commerciale. Vous pouvez trouver plus d'informations sur les licencesici.