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.
- Ouvrir Visual Studio
- Cliquez sur Créer un nouveau projet
- Sélectionnez le modèle, cliquez sur le bouton Suivant
- Nommer le Projet, cliquez sur le bouton Suivant
- Sélectionnez la cible du Framework, cliquez sur le bouton Suivant
- Cliquez sur le bouton Créer, cliquez sur le bouton Suivant
Un nouveau projet sera créé comme illustré ci-dessous :
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 Package Manager, les solutions du Package Manager NuGet, ou l'installer directement depuis la page de paquet NuGet BarCode.
Suivez les étapes ci-dessous :
-
Cliquez sur Outils > Package Manager NuGet > Console du Package Manager.
Tutoriel pas à pas pour un lecteur de codes-barres C#, Figure 2 : Interface utilisateur de la console du gestionnaire de packages Interface de la console du Package Manager
- É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
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)
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 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
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
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
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
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 lecteur de codes-barres C#, Figure 6 : La sortie de la console affiche 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
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
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
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
La même fonction Read que celle décrite 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
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.



