Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

.NET MAUI Barcode Scanner SDK : Créer un scanner multiplateforme en quelques minutes

Nous connaissons tous la promesse de .NET MAUI : écrire du code une seule fois et le déployer partout. Mais cette expérience "transparente" se heurte souvent à un obstacle lorsqu'il s'agit d'intégrer des fonctionnalités matérielles, en particulier la lecture de codes-barres.

Si vous avez déjà essayé de relier manuellement les API natives des caméras, vous savez que cela peut rapidement se transformer en un trou de lapin de configurations spécifiques à la plateforme. Ce n'est pas si difficile. Dans ce tutoriel, nous allons sauter les heures de configuration et utiliser la bibliothèque IronBarcode pour construire un scanner multiplateforme fonctionnel en quelques minutes.

Prêt à démarrer ? Saisissez votre version d'essai gratuite et codons.

NuGet Installer avec NuGet

PM >  Install-Package BarCode

Consultez IronBarcode sur NuGet pour une installation rapide. Avec plus de 10 millions de téléchargements, il transforme le développement PDF avec C#. Vous pouvez également télécharger le DLL.

Comment configurer un lecteur de BarCode SDK dans .NET MAUI?

La mise en place d'un SDK de lecteur de codes-barres .NET MAUI nécessite la création d'un nouveau projet, l'installation du package NuGet et la configuration des autorisations de plateforme. L'ensemble du processus de configuration ne prend que quelques minutes dans Visual Studio.

Créer le projet .NET MAUI

Ouvrez Visual Studio et créez un nouveau projet .NET MAUI App. Donnez à votre projet MAUI un nom descriptif comme "BarcodeScanner" et sélectionnez .NET 8 ou une version ultérieure comme cadre de travail cible. Visual Studio génère la structure de projet par défaut avec des dossiers spécifiques à la plateforme pour Android et iOS.

Installer IronBarcode

Installez le package NuGet IronBarcode à l'aide de la console de gestion des packages :

Install-Package BarCode

Cette commande télécharge et installe le SDK du lecteur de codes-barres ainsi que toutes les dépendances requises pour votre application .NET MAUI.

Configurer les autorisations de la plateforme

Même lorsque vous numérisez à partir de fichiers d'images plutôt que d'une caméra en direct, il est bon de configurer les autorisations suivantes pour votre application de lecteur de codes-barres .NET MAUI.

Pour Android, ajoutez ce qui suit à Platforms/Android/AndroidManifest.xml :

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
XML

Pour iOS, ajoutez ces entrées à Platforms/iOS/Info.plist :

<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
XML

Initialiser le SDK

Configurez IronBarcode dans votre fichier MauiProgram.cs :

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}
$vbLabelText   $csharpLabel

Définissez votre clé de licence dans le code d'initialisation de votre application afin d'en activer toutes les fonctionnalités. IronBarcode propose une licence d'essai gratuite pour le développement et les tests.

Comment lire des BarCodes à partir de fichiers images?

La fonctionnalité de base de tout lecteur de codes-barres MAUI est la capacité à lire des codes-barres à partir d'images sélectionnées. IronBarcode rend cette tâche remarquablement simple grâce à sa classe BarcodeReader.

Conception de l'interface utilisateur

Créez une interface propre dans MainPage.xaml qui permet aux utilisateurs de sélectionner un fichier image et de visualiser les données du code-barres scanné :

<?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="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</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"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
XML

Mettre en œuvre la lecture de codes-barres

Ajoutez la logique d'analyse à MainPage.xaml.cs. Ce code gère la sélection des images et la détection des codes-barres :

using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
using IronBarCode;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });
        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);
            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);
            if (barcodes.Any())
            {
                ResultLabel.Text = $"Found: {barcodes.First().Value}";
            }
            else
            {
                ResultLabel.Text = "No barcodes detected in selected image.";
            }
        }
    }
}
$vbLabelText   $csharpLabel

Sortie

.NET MAUI Barcode Scanner SDK : Créez un scanner multiplateforme en quelques minutes : Image 1 - Sortie du code-barres scanné

La méthode BarcodeReader.Read() analyse l'image sélectionnée et renvoie tous les codes-barres détectés. IronBarcode reconnaît automatiquement plusieurs symbologies de codes-barres, notamment les codes QR, le Code 128, le Code 39, l'EAN-13 et beaucoup d'autres formats.

Comment numériser des BarCodes à partir de documents PDF?

L'une des puissantes fonctionnalités qui distingue IronBarcode est la lecture de codes-barres directement à partir de fichiers PDF. Cela est essentiel pour les applications .NET MAUI qui gèrent des flux de documents.

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });
    if (result != null)
    {
        // Read barcodes from PDF document
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);
        string output = "";
        foreach (var barcode in barcodes)
        {
            output += $"Page {barcode.PageNumber}: {barcode.Value}\n";
        }
        await DisplayAlert("Scan Results", output, "OK");
    }
}
$vbLabelText   $csharpLabel

Sortie

.NET MAUI Barcode Scanner SDK : Créez un scanner multiplateforme en quelques minutes : Image 2 - Sortie pour scanner un PDF contenant des codes QR

La méthode ReadPdf() scanne toutes les pages d'un PDF et renvoie les données des codes-barres avec les numéros de page, ce qui facilite le traitement des documents contenant plusieurs codes-barres.

Comment gérer plusieurs BarCodes et QR Codes?

Pour les scénarios nécessitant la détection de plusieurs codes-barres à partir d'un seul balayage ou le filtrage de formats de codes-barres spécifiques, configurez la classe BarcodeReaderOptions :

var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};
var barcodes = BarcodeReader.Read(imagePath, options);
foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
$vbLabelText   $csharpLabel

Cette configuration permet de scanner plusieurs codes-barres tout en limitant la détection à des symbologies de codes-barres spécifiques pour améliorer les performances. La propriété Vitesse vous permet d'équilibrer la vitesse de numérisation et la précision en fonction des exigences de votre application.

Quels sont les principaux avantages de ce SDK pour scanner de codes-barres ?

IronBarcode offre plusieurs avantages pour les projets de numérisation de codes-barres .NET MAUI :

  • Prise en charge multiplateforme : Déploiement sur les plateformes Android, iOS et Windows à partir d'une base de code unique
  • Sources d'entrée multiples : Scannez des codes-barres à partir d'images, de flux de mémoire et de fichiers PDF
  • Prise en charge étendue des formats : Décodez les codes-barres à travers des dizaines de symbologies de codes-barres 1D et 2D
  • API simple : Intégrez la lecture rapide de codes-barres avec seulement quelques lignes de code
  • Aucune dépendance externe : La bibliothèque .NET fonctionne de manière indépendante, sans nécessiter de SDK natifs supplémentaires

Conclusion

La construction d'un lecteur de codes-barres .NET MAUI avec IronBarcode démontre à quel point il est simple d'intégrer une fonctionnalité de lecture de codes-barres dans des applications multiplateformes. De l'installation du package NuGet à la lecture des codes-barres des images et des PDF, l'ensemble du processus nécessite une configuration et un code minimaux.

La combinaison des capacités du cadre multiplateforme de .NET MAUI et du SDK de numérisation robuste d'IronBarcode permet aux développeurs de créer de puissantes applications de numérisation de codes-barres qui s'exécutent de manière transparente sur les mobiles et les ordinateurs de bureau.

Prêt à ajouter la lecture de codes-barres à votre projet .NET MAUI ? Démarrez votre essai gratuit ou explorez les options de licence pour un déploiement en production.

Questions Fréquemment Posées

Qu'est-ce que .NET MAUI et quel est son rapport avec la lecture des codes-barres ?

.NET MAUI est un cadre qui permet aux développeurs de créer des applications multiplateformes avec une base de code unique. L'intégration de la lecture de codes-barres dans une application .NET MAUI peut s'avérer difficile, mais IronBarcode simplifie ce processus en fournissant des outils robustes pour la lecture et le balayage de codes-barres sur différentes plateformes.

Comment IronBarcode peut-il aider à développer un lecteur de codes-barres pour les applications .NET MAUI ?

IronBarcode propose une bibliothèque complète qui prend en charge la numérisation et la génération de codes-barres. Elle rationalise le processus de création d'un lecteur de codes-barres pour les applications .NET MAUI en proposant des méthodes et des fonctions faciles à utiliser pour lire les codes-barres à partir d'images et de PDF.

IronBarcode est-il compatible avec le développement multiplateforme en .NET MAUI ?

Oui, IronBarcode est entièrement compatible avec .NET MAUI, ce qui permet aux développeurs d'intégrer des fonctionnalités de lecture de codes-barres dans des applications fonctionnant sur plusieurs plateformes à partir d'une base de code unique.

Quels types de codes-barres peuvent être lus à l'aide d'IronBarcode for .NET dans une application .NET MAUI ?

IronBarcode prend en charge un large éventail de formats de codes-barres, notamment les codes QR, le Code 128, l'UPC et l'EAN, ce qui le rend polyvalent pour diverses applications dans .NET MAUI.

Comment IronBarcode simplifie-t-il la lecture des codes-barres dans .NET MAUI ?

IronBarcode simplifie la lecture des codes-barres en fournissant une API unifiée qui gère la détection et la lecture des codes-barres avec un minimum de code, ce qui garantit une intégration harmonieuse dans les projets .NET MAUI.

Quels sont les avantages de l'utilisation d'IronBarcode pour la lecture de codes-barres PDF dans les apps MAUI ?

IronBarcode offre des fonctions avancées d'extraction de codes-barres à partir de documents PDF, permettant aux développeurs .NET MAUI d'ajouter facilement une fonctionnalité de lecture de codes-barres PDF à leurs applications multiplateformes.

Quelles sont les étapes de la mise en place d'IronBarcode pour .NET dans un projet MAUI ?

La mise en place d'IronBarcode dans un projet .NET MAUI implique l'installation du package NuGet IronBarcode, l'importation des espaces de noms nécessaires et l'utilisation des méthodes fournies pour mettre en œuvre la fonctionnalité de lecture et de balayage de codes-barres.

IronBarcode peut-il gérer la numérisation de codes-barres basée sur l'image dans .NET MAUI ?

Oui, IronBarcode peut effectivement scanner et lire des codes-barres à partir d'images, ce qui en fait un outil puissant pour les développeurs qui cherchent à mettre en œuvre la lecture de codes-barres basée sur l'image dans leurs applications .NET MAUI.

IronBarcode est-il adapté à la lecture de codes-barres en temps réel dans les applications mobiles ?

IronBarcode est conçu pour gérer efficacement la lecture de codes-barres en temps réel, ce qui le rend adapté aux applications mobiles développées avec .NET MAUI qui nécessitent un traitement rapide et précis des données des codes-barres.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite