UTILISATION D'IRONBARCODE

Tutoriel sur le lecteur de codes-barres C#, étape par étape

Jordi Bardia
Jordi Bardia
octobre 20, 2022
Mise à jour février 7, 2024
Partager:

Ce tutoriel montre comment créer un lecteur de codes-barres avec l'aide d'une bibliothèque tierce. De nombreuses bibliothèques sont disponibles à cet effet, mais certaines sont payantes, d'autres offrent moins de fonctionnalités et d'autres encore sont difficiles à mettre en œuvre. Il est difficile de trouver une bibliothèque très complète et utile qui soit gratuite, efficace et facile à mettre en œuvre.

Pour cette raison, nous utiliserons IronBarcode, car c'est le meilleur choix pour développer un scanner de code-barres .NET. Il présente également l'avantage d'être libre de développement, très efficace et facile à mettre en œuvre. IronBarcode permet aux développeurs de lire et d'écrire des codes-barres et des codes QR au sein d'applications et de sites Web .NET. La lecture ou l'écriture de codes-barres ne nécessite qu'une seule ligne de code avec cette bibliothèque.

La bibliothèque de codes-barres .NET lit et écrit la plupart des normes de codes-barres et de codes QR. Les types de codes-barres pris en charge comprennent le code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS et QR. Les données de résultat du code-barres comprennent des fichiers de type, de texte, de données binaires, de pages et d'images.

L'API d'écriture de codes-barres contrôle et vérifie le format, la longueur, le nombre et la somme de contrôle afin d'éviter automatiquement les erreurs d'encodage. Le générateur de codes-barres permet de personnaliser le style, de redimensionner, de gérer les marges, les bordures, de recolorier et d'ajouter des annotations textuelles. Le rédacteur de codes-barres peut écrire dans des fichiers d'image, notamment BMP, PNG, GIF, TIFF et JPG. Il peut également écrire au format PDF ou fichiers HTML.

Créons notre lecteur de codes-barres pour mieux le comprendre.

Créer un projet Visual Studio

Tout d'abord, créez un projet Visual Studio pour développer une application de démonstration. Vous pouvez également ouvrir un projet existant.

Suivez les étapes ci-dessous pour créer un nouveau projet d'application console afin de vous concentrer sur les fonctionnalités de base. Le même code peut être mis en œuvre dans des applications Web API, MVC, Web Forms ou Windows Forms.

  1. Ouvrir Visual Studio

  2. Cliquez sur Créer un nouveau projet

  3. Sélectionnez le modèle, cliquez sur le bouton Suivant

  4. Nommer le projet, cliquez sur le bouton Suivant

  5. Sélectionnez le framework cible, cliquez sur le bouton Suivant

  6. Cliquez sur le Créer bouton, cliquez sur le Suivant bouton

    Un nouveau projet sera créé comme indiqué ci-dessous :

    Tutoriel étape par étape pour le scanner de codes-barres en C#, Figure 1 : Application Console

    Application Console

    La prochaine étape consiste à installer le paquet NuGet IronBarcode pour utiliser ses fonctionnalités.

Installer le paquet NuGet d'IronBarcode

Vous pouvez installer la bibliothèque en utilisant la console du Gestionnaire de Paquets, les Solutions de Gestion de Paquets NuGet, ou l'installer directement depuis la page du package NuGet BarCode.

Suivez les étapes ci-dessous :

  1. Cliquez sur Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages.

    Tutoriel pas à pas du scanner de codes-barres C#, Figure 2 : Interface utilisateur de la console du gestionnaire de packages

    Interface de la console du gestionnaire de packages

  2. Ecrivez la commande suivante
Install-Package BarCode

Le paquet sera installé.

Ecrivons maintenant un code pour scanner une image de code-barres.

Numérisation d'un code-barres à partir d'un fichier image

Ajouter l'espace de noms suivant

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

Ensuite, écrivez le code suivant dans la fonction principale pour lire les données d'un code-barres à partir d'une image.

var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")
Console.WriteLine(myBarcode)
$vbLabelText   $csharpLabel

La classe BarcodeReader fournit une fonction Read qui prend un chemin de fichier comme argument. Cette fonction lit l'image et renvoie les données du code-barres. Cette méthode lit les codes-barres à partir d'un BMP, PNG, GIF, TIFF, ou JPG avec des réglages granulaires pour permettre aux développeurs de contrôler le compromis entre performance et précision selon leur cas d'utilisation spécifique.

Le chemin d'accès contient l'image du code-barres suivant que l'application va scanner.

Image de code-barres

Tutoriel étape par étape pour le scanner de codes-barres en C#, Figure 3 : L'image du code-barres utilisée dans cette application console

L'image de code-barres utilisée dans cette application console

Lisons cette image de code-barres pour voir si ce programme produit le bon résultat.

Sortie

Tutoriel étape par étape pour le scanner de codes-barres en C#, Figure 4 : La sortie de la console lors de l'exécution de l'application

La sortie de la console lors de l'exécution de l'application

On peut constater que le programme a généré un résultat précis.

Numérisation d'un code-barres à partir d'un PDF

Dans de nombreuses circonstances, il est nécessaire de scanner un code-barres à partir d'une facture PDF. Dans cet exemple, nous allons scanner le code-barres de la facture suivante.

Document PDF

Tutoriel étape par étape pour le scanner de codes-barres en C#, Figure 5 : Une facture au format PDF

Une facture au format PDF

Prenons l'exemple de l'extrait de code suivant, qui permet de scanner le code-barres d'un document PDF :

var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")
For Each barcodeData In myBarcode
	Console.WriteLine(barcodeData.Value)
Next barcodeData
$vbLabelText   $csharpLabel

La classe BarcodeReader fournit la fonction ReadPdf qui prend un chemin de fichier comme argument. Cette fonction recherche une image de code-barres dans un fichier PDF, scanne l'ensemble du code-barres et renvoie ses données sous la forme d'un tableau. Cette fonction lit les codes-barres de chaque image intégrée dans le document.

une boucle foreach utilisée pour imprimer les données du code-barres dans la console.

Sortie

Le numéro de la facture est imprimé sur la console.

Tutoriel étape par étape pour le scanner de code-barres C#, Figure 6 : La sortie de la console affiche le numéro de facture

La sortie de la console affiche le numéro de facture

Numérisation de codes-barres à partir de plusieurs fichiers

Cet exemple montre comment scanner simultanément plusieurs codes-barres à partir de fichiers images.

Images de codes-barres

Tutoriel étape par étape sur le scanner de codes-barres C#, Figure 7 : Images de code-barres utilisées dans l'exemple ci-dessous

Images de codes-barres utilisées dans l'exemple ci-dessous

Examinez les extraits de code suivants qui lisent plusieurs codes-barres et scannent leurs résultats en utilisant le multithreading.

List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults =  BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
}
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults =  BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
}
Dim barcodeList As New List(Of String)()
barcodeList.Add("D:\Barcode Images\barcode1.jpg")
barcodeList.Add("D:\Barcode Images\barcode2.jpg")
barcodeList.Add("D:\Barcode Images\barcode3.jpg")
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)
' Work with the results
For Each result In batchResults
	Dim barcodeValue As String = result.Text
Next result
$vbLabelText   $csharpLabel

Tout d'abord, une liste est créée pour contenir le chemin de fichier de toutes les images de codes-barres. Ensuite, la fonction ReadAsync est appelée, qui prend un type List<string> comme argument et renvoie les données. Cette méthode permet de lire les codes-barres de plusieurs images en parallèle. Plusieurs fils d'exécution seront lancés et gérés automatiquement afin d'améliorer les performances des tâches de lecture de codes-barres par lots.

Scanner le code QR

L'utilisation des codes QR augmente rapidement. Par conséquent, cette section montrera comment scanner des codes QR en utilisant C#.

Code QR

Tutoriel étape par étape du scanner de code-barres C#, Figure 8 : Le code QR utilisé dans cette démonstration

Le code QR utilisé dans cette démonstration

Considérons l'exemple de code suivant :

var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")
For Each result In qrCodeResult
	Console.WriteLine(result.Text)
Next result
$vbLabelText   $csharpLabel

La même fonction Read que celle mentionnée ci-dessus est utilisée pour lire le code QR. C'est la simplicité qu'offre la bibliothèque IronBarcode. Ainsi, la même fonction et le même code peuvent être utilisés pour différentes sources d'images.

Sortie

Tutoriel étape par étape pour le scanner de code-barres C#, Figure 9 : La console du lecteur de code QR

Le lecteur de code QR pour la console

Résumé

Ce tutoriel présente une méthode très simple pour scanner des codes-barres à partir d'une seule image, scanner des codes-barres à partir d'un document PDF et scanner des codes-barres à partir de plusieurs images et de plusieurs documents en parallèle. Nous avons utilisé la même fonction pour différentes fonctionnalités. Il offre à la fois performance et convivialité. IronBarcode fournit la fonctionnalité de génération de codes-barres et de codes QR avec différentes configurations. Il y a tellement de caractéristiques qu'il est impossible d'en parler dans le même article. Veuillez cliquer sur la page de documentation pour explorer davantage IronBarcode.

IronBarcode fait partie de la Iron Software Suite. Cette suite contient d'autres bibliothèques très utiles, telles que IronPDF pour lire et écrire des fichiers PDF, IronXL pour manipuler des fichiers Excel, IronOCR pour lire du texte à partir d'images, et IronWebScraper pour extraire des données de différents sites web. Vous pouvez acheter la Iron Suite complète pour le prix de deux bibliothèques individuelles.

Jordi Bardia
Ingénieur logiciel
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT
Comment créer un code QR pour un lien (Tutoriel C#)
SUIVANT >
.NET QR Code Generator (Tutoriel d'exemple de code)