Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Tutoriel étape par étape pour scanner des codes-barres en C#

Ce tutoriel démontre comment créer un scanner de code-barres avec l'aide d'une bibliothèque tierce. Plusieurs bibliothèques sont disponibles à cet effet, mais certaines sont payantes, d'autres offrent moins de fonctionnalités, et certaines 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 a également l'avantage d'être gratuit pour le 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 des applications et des 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 standards de codes-barres et de codes QR. Les types de codes-barres pris en charge incluent 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 résultantes des codes-barres incluent le type, le texte, les données binaires, la page et les fichiers image.

L'API d'écriture de codes-barres vérifie le format, la longueur, le nombre et la somme de contrôle pour éviter automatiquement les erreurs de codage. Le générateur de codes-barres permet le stylage, le redimensionnement, les marges, les bordures, le recoloration et l'ajout d'annotations textuelles. Le générateur de codes-barres peut écrire sur des fichiers image incluant BMP, PNG, GIF, TIFF et JPG. Il peut également écrire sur des fichiers PDF ou HTML.

Créons notre scanner 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 en ouvrir une existante.

Suivez les étapes ci-dessous pour créer un nouveau projet d'application console afin de se concentrer sur les fonctionnalités principales. Le même code peut être mis en œuvre dans des API web, MVC, Web Forms ou Applications 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 la cible du Framework, cliquez sur le bouton Suivant
  6. Cliquez sur le bouton Créer, cliquez sur le bouton Suivant

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

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 1 : Application Console Application Console

L'étape suivante 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 du gestionnaire de paquets NuGet, ou l'installer directement depuis la page de paquet NuGet BarCode.

Suivez les étapes ci-dessous :

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

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 2 : Interface de la console du gestionnaire de paquets Interface de la console du gestionnaire de paquets

  1. Écrivez la commande suivante
Install-Package BarCode

Le paquet sera installé.

Écrivons maintenant le code pour scanner une image de code-barres.

Scanner un code-barres à partir d'un fichier image

Ajoutez l'espace de noms suivant

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

Ensuite, écrivez le code suivant à l'intérieur de la fonction principale pour lire les données du code-barres à partir d'une image.

// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
' Read the barcode from an image file
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")

' Print the barcode data to the console
Console.WriteLine(myBarcode)
$vbLabelText   $csharpLabel

The BarcodeReader class provides a Read function that takes a file path as an argument. Cette fonction lit l'image et renvoie les données du code-barres. Cette méthode lit les codes-barres à partir de BMP, PNG, GIF, TIFF ou JPG avec des paramètres granulaires pour le contrôle des développeurs afin d'équilibrer la performance par rapport à la précision pour leur cas d'utilisation donné.

Le chemin contient l'image de code-barres suivante que l'application scannera.

Image du code-barres

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 3 : L'image de 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 résultat correct.

Sortie

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 4 : L'affichage de la console lors de l'exécution de l'application L'affichage de la console lors de l'exécution de l'application

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

Scanner un code-barres à partir d'un PDF

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

Document PDF

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 5 : Une facture au format PDF Une facture au format PDF

Considérez l'extrait de code suivant pour scanner le code-barres à partir d'un document PDF :

// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
' Read barcodes from a PDF file
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")

' Iterate through each barcode found and print its value
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 tout le code-barres, et renvoie ses données sous forme de tableau. Cette fonction lit les codes-barres de chaque image intégrée dans le document.

Une boucle foreach est 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 pas à pas du Scanner de Codes-Barres en C#, Figure 6 : L'affichage de la console montre le numéro de facture L'affichage de la console montre le numéro de facture

Scanner des codes-barres à partir de fichiers multiples

Cet exemple démontrera comment scanner plusieurs codes-barres à partir de fichiers image simultanément.

Images de codes-barres

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 7 : Images de codes-barres utilisées dans l'exemple ci-dessous Images de codes-barres utilisées dans l'exemple ci-dessous

Considérez les extraits de code suivants qui lisent plusieurs codes-barres et scannent leur résultat en utilisant le multithreading.

// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
' Create a list of file paths containing barcode images
Dim barcodeList As New List(Of String) From {"D:\Barcode Images\barcode1.jpg", "D:\Barcode Images\barcode2.jpg", "D:\Barcode Images\barcode3.jpg"}

' Read barcodes asynchronously from multiple files
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)

' Work with the results
For Each result In batchResults
	Dim barcodeValue As String = result.Text
	Console.WriteLine(barcodeValue)
Next result
$vbLabelText   $csharpLabel

Premièrement, 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 lit les codes-barres à partir de plusieurs images en parallèle. Plusieurs threads commenceront et seront automatiquement gérés pour améliorer les performances des tâches de lecture de codes-barres en lot.

Scanner un Code QR

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

Code QR

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 8 : Le code QR utilisé dans cette démonstration Le code QR utilisé dans cette démonstration

Considérez l'échantillon de code suivant :

// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
' Read the QR code from an image file
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")

' Iterate through each result and print its text
For Each result In qrCodeResult
	Console.WriteLine(result.Text)
Next result
$vbLabelText   $csharpLabel

La même fonction Read discutée ci-dessus est utilisée pour lire le Code QR. C’est la simplicité fournie par la bibliothèque IronBarcode, permettant d’utiliser la même fonction et le même code pour différentes sources d’images.

Sortie

Tutoriel pas à pas du Scanner de Codes-Barres en C#, Figure 9 : La sortie de la console du lecteur de code QR La sortie de la console du lecteur de code QR

Résumé

Ce tutoriel a démontré une manière très simple de scanner des codes-barres à partir d'une seule image, de scanner des codes-barres à partir d'un document PDF, et de scanner des codes-barres à partir de plusieurs images et plusieurs documents en parallèle. Nous avons utilisé la même fonction pour différentes fonctionnalités, offrant à la fois performance et utilité. IronBarcode fournit la fonctionnalité de génération de codes-barres et de codes QR avec différentes configurations. Il y a tellement de fonctionnalités qui ne peuvent pas être abordées dans le même article. Veuillez cliquer sur la page de documentation pour explorer davantage IronBarcode.

IronBarcode fait partie de la suite Iron Software. Cette suite contient d'autres bibliothèques très utiles, telles qu'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 suite Iron complète pour le prix de deux bibliothèques individuelles.

Questions Fréquemment Posées

Comment puis-je créer un scanner de code-barres en C#?

Pour créer un scanner de code-barres en C#, vous pouvez utiliser IronBarcode. Commencez par configurer un projet Visual Studio, installez le package NuGet d'IronBarcode, et utilisez la classe BarcodeReader pour lire les codes-barres à partir de fichiers image ou PDF.

Quels types de codes-barres peuvent être lus en utilisant une bibliothèque de codes-barres .NET ?

IronBarcode peut lire une large gamme de types de codes-barres, y compris 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 les codes QR.

Puis-je lire des codes-barres à partir de fichiers PDF en C#?

Oui, IronBarcode vous permet de lire les codes-barres à partir de fichiers PDF en utilisant la méthode ReadPdf, qui scanne l'ensemble du document PDF pour les images de codes-barres et renvoie leurs données.

Est-il possible de scanner plusieurs codes-barres à partir de différents fichiers image en C#?

Oui, vous pouvez utiliser la fonction ReadAsync dans IronBarcode pour scanner plusieurs codes-barres à partir de différents fichiers image simultanément, en exploitant le traitement asynchrone pour améliorer la performance.

Comment installer une bibliothèque .NET pour la fonctionnalité des codes-barres?

Pour installer IronBarcode, utilisez la console du gestionnaire de packages dans Visual Studio avec la commande Install-Package Barcode, qui ajoutera la bibliothèque à partir de la source du package NuGet.

Les codes QR peuvent-ils être scannés de la même manière que les codes-barres?

Oui, vous pouvez scanner des codes QR en utilisant la même fonction Read dans IronBarcode, permettant une gestion cohérente des codes-barres et des codes QR à partir de diverses sources d'image.

Quels sont les avantages d'utiliser IronBarcode pour le scan de codes-barres?

IronBarcode est convivial, efficace et adaptable. Il prend en charge une variété de types de codes-barres et fournit des API simples pour lire et écrire des codes-barres et des codes QR, ce qui le rend idéal pour les applications .NET.

Quelles bibliothèques sont incluses dans la Suite Iron Software?

La Suite Iron Software inclut des bibliothèques telles que IronPDF pour la manipulation de PDF, IronXL pour la gestion des fichiers Excel, IronOCR pour la reconnaissance optique de caractères, et IronWebScraper pour l'extraction de données du web.

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