Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Comment générer des codes-barres en C# avec IronBarcode

IronBarcode est une bibliothèque de codes-barres .NET qui vous permet de générer et de lire des codes-barres en C# avec seulement quelques lignes de code. Vous pouvez créer des codes Code 128, des codes QR, des codes EAN-13, des PDF-417, des Data Matrix et des dizaines d'autres types de codes-barres, puis les exporter aux formats PNG, JPEG, TIFF, BMP, PDF ou HTML. Ce guide vous accompagne à travers l'installation, les modèles de génération de base, le style, les formats d'exportation et les meilleures pratiques afin que vous puissiez ajouter une sortie de code-barres fiable à n'importe quelle application .NET .

Comment installer une bibliothèque de génération de codes-barres à l'aide du gestionnaire de packages NuGet ?

Ouvrez Visual Studio et installez le package NuGet à l'aide de cette commande dans la console du gestionnaire de packages :

Install-Package BarCode

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 1 - Installation

Le package NuGet prend en charge .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard et .NET Framework , ce qui le rend compatible avec les applications Windows et les applications .NET multiplateformes. IronBarcode prend en charge le déploiement sur les conteneurs Docker, Azure et les serveurs Linux. Vous trouverez plus de détails et de documentation de référence sur la page de documentation IronBarcode et sur le projet GitHub Iron Software .

Après l'installation, vous verrez l'espace de noms IronBarCode disponible dans votre projet. La bibliothèque ne nécessite aucune dépendance d'exécution supplémentaire sous Windows ; sous Linux, vous devrez peut-être installer quelques bibliothèques système comme indiqué dans le guide de déploiement d' IronBarcode sous Linux .

Comment générer un fichier image de code-barres simple en C# ?

Créez des images de codes-barres avec seulement quelques lignes de code. L'exemple suivant montre la génération de codes-barres qui enregistre un fichier image PNG :

using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
using IronBarCode;

// Generate a simple barcode and encode the string data
var barcode = BarcodeWriter.CreateBarcode("SKU-78432-X", BarcodeWriterEncoding.Code128);

// Save the barcode as a PNG image file
barcode.SaveAsPng("product-barcode.png");
$vbLabelText   $csharpLabel

La méthode BarcodeWriter.CreateBarcode() accepte une chaîne à encoder et le format du code-barres de BarcodeWriterEncoding. La référence renvoyée GeneratedBarcode fournit des méthodes de style et des options d'exportation pour enregistrer au format PNG, JPEG, BMP, TIFF, PDF ou HTML.

Sortie

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 2 - Sortie du code-barres

Le code-barres Code128 est le code-barres incontournable des systèmes de logistique et d'inventaire. Il encode les lettres majuscules, les lettres minuscules, les chiffres et les caractères spéciaux dans un format linéaire compact. Ce type de code-barres garantit une lecture correcte dans les centres d'expédition et les points de vente du monde entier. Lorsque vous utilisez la méthode SaveAsPng(), IronBarcode définit automatiquement une résolution par défaut adaptée à l'affichage à l'écran et aux imprimantes standard.

Pour les applications où vous devez servir l'image du code-barres directement depuis un point de terminaison Web, vous pouvez utiliser ToStream() au lieu de l'enregistrer sur le disque. Le flux peut être écrit directement dans un HttpResponse dans ASP.NET Core ou renvoyé comme un FileStreamResult à partir d'une action de contrôleur.

Comment créer un code QR et d'autres types de codes-barres 2D ?

IronBarcode prend en charge tous les principaux formats de codes-barres, y compris les types de codes-barres 2D tels que QR Code et Data Matrix. Générer un code QR avec une syntaxe similaire :

using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
using IronBarCode;

// Create a QR code and encode URL data
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com/csharp/barcode/",
    BarcodeWriterEncoding.QRCode
);
qrCode.SaveAsPng("website-qr.png");
$vbLabelText   $csharpLabel

Les types de codes-barres QR excellent dans le stockage d'URL et de charges utiles de données plus importantes. La bibliothèque gère automatiquement la correction des erreurs, garantissant que le code-barres reste scannable même lorsqu'il est partiellement endommagé. Par défaut, IronBarcode utilise le niveau de correction d'erreur M (moyen), qui récupère environ 15 % de perte de données ; vous pouvez augmenter ce niveau jusqu'au niveau H pour les codes-barres imprimés qui peuvent être rayés ou partiellement masqués.

Sortie

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 3 - Sortie de code QR

Pour les produits de détail nécessitant des codes-barres EAN-13, générez des images de codes-barres comme celles-ci :

using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
using IronBarCode;

// Generate an EAN-13 barcode compatible with UPC for retail print applications
var eanBarcode = BarcodeWriter.CreateBarcode("5901234123457", BarcodeWriterEncoding.EAN13);
eanBarcode.SaveAsPng("retail-product.png");
$vbLabelText   $csharpLabel

EAN-13 est le format standard des systèmes de points de vente dans le monde entier. La bibliothèque calcule automatiquement les chiffres de contrôle ; il vous suffit donc de fournir les 12 premiers chiffres d'un numéro GTIN-13 valide. Si le chiffre de contrôle que vous fournissez ne correspond pas, IronBarcode génère une exception descriptive plutôt que de générer silencieusement un code-barres illisible.

Sortie

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 4 - Sortie de code-barres EAN-13

Outre les codes Code 128, QR Code et EAN-13, la bibliothèque prend en charge les codes Code 39, Code 93, UPC-A, UPC-E, ITF, Codabar, PDF-417, Aztec et Data Matrix. La liste complète des formats pris en charge est disponible sur la page de référence des types de codes-barres IronBarcode .

Comment créer un code QR stylisé avec des options de style avancées ?

La génération de BarCodes professionnels nécessite souvent des options de style avancées pour ajuster les couleurs et ajouter des annotations. La classe GeneratedBarcode fournit une API fluide avec des méthodes de style :

using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
using IronBarCode;
using IronSoftware.Drawing;

// Create a styled barcode with advanced styling options
var styledBarcode = BarcodeWriter
    .CreateBarcode("INV-2025-001847", BarcodeWriterEncoding.Code128)
    .ResizeTo(400, 120)
    .SetMargins(20)
    .ChangeBarCodeColor(Color.DarkBlue)
    .AddAnnotationTextAboveBarcode("Invoice Number:")
    .AddBarcodeValueTextBelowBarcode();

// Verify to ensure proper scanning after styling
bool isReadable = styledBarcode.Verify();
Console.WriteLine($"Barcode verification: {(isReadable ? "PASS" : "FAIL")}");
styledBarcode.SaveAsPng("styled-invoice-barcode.png");
$vbLabelText   $csharpLabel

L'API fluide vous permet d'enchaîner les méthodes de style pour ajuster les couleurs, définir les marges et ajouter du texte en une seule déclaration. La méthode Verify() indique si votre code-barres reste lisible par machine, garantissant ainsi une numérisation correcte en production après l'application de couleurs non standard ou le redimensionnement à de petites dimensions.

Changer la couleur de la barre pour une teinte très claire ou un bleu à faible contraste sur fond blanc peut empêcher la lecture du code-barres. Appelez toujours Verify() après tout changement de couleur. Si la vérification échoue, augmentez le contraste ou revenez aux barres noires. Le guide de style et de personnalisation des codes-barres couvre en détail toutes les méthodes de style disponibles.

Pour générer plusieurs codes-barres avec un style cohérent sur l'ensemble d'un catalogue, créez une méthode d'assistance qui applique votre chaîne de style standard à chaque instance GeneratedBarcode. Cette approche garantit des marges, une taille de police et une couleur uniformes sur des milliers d'images générées.

Comment exporter des codes-barres vers différents formats d'image ?

Générer des images de BarCode dans plusieurs formats pour différents cas d'utilisation. La bibliothèque enregistre au format PNG, JPEG, BMP, TIFF, PDF et HTML :

using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("EXPORT-TEST", BarcodeWriterEncoding.Code128);

// Export barcode images to various formats
barcode.SaveAsPng("barcode.png");           // Web-compatible raster image
barcode.SaveAsJpeg("barcode.jpg");          // Compressed format for email attachments
barcode.SaveAsTiff("barcode.tiff");         // High-quality format for print workflows
barcode.SaveAsPdf("barcode.pdf");           // PDF document output
barcode.SaveAsHtmlFile("barcode.html");     // HTML for inline web embedding

// Get as bitmap stream for web APIs or database storage
System.IO.Stream barcodeStream = barcode.ToStream();
System.Drawing.Bitmap bitmapImage = barcode.ToBitmap();
$vbLabelText   $csharpLabel

La méthode ToStream() renvoie des données de code-barres compatibles avec les API Web ASP.NET Core et les applications Blazor . La méthode ToBitmap() fournit une référence System.Drawing.Bitmap pour une manipulation d'image ultérieure. Pour ajouter des codes-barres à des documents PDF existants, consultez le tutoriel IronBarcode sur les codes-barres PDF .

Sortie

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 5 - Sortie de code-barres PNG

Générateur de codes-barres C# : Code source utilisant IronBarcode: Image 6 - Sortie de code-barres HTML

Le choix du format approprié dépend de votre flux de travail en aval. Le format PNG est sans perte et constitue un bon format par défaut pour les interfaces utilisateur web et d'applications. Le format TIFF est privilégié pour les chaînes de production d'impression où la précision des couleurs est importante. L'exportation au format PDF est utile lorsque vous avez besoin d'un document prêt à imprimer, que l'imprimerie peut prendre en charge directement. La sortie HTML génère un fichier autonome contenant une image base64 intégrée, pratique pour les modèles d'e-mails et les portails web.

Quels environnements .NET multiplateformes IronBarcode prend-il en charge ?

IronBarcode prend en charge la génération de codes-barres sur toutes les principales plateformes .NET . Déployer sur :

Support de la plateforme de déploiement IronBarcode
Plate-forme Environnements d'exécution pris en charge Cas d'utilisation typiques
Windows .NET 10, .NET 8, .NET Framework 4.6.2+ Applications de bureau, services Windows, serveurs web IIS
Linux .NET 10, .NET 8, .NET Core 3.1+ Conteneurs Docker, AWS Lambda, Azure Functions
macOS .NET 10, .NET 8 Environnements de développement, applications serveur macOS
Mobile .NET MAUI, Xamarin Applications mobiles iOS et Android
Nuage Azure, AWS, Google Nuage Fonctions sans serveur, microservices conteneurisés

Le guide d'installation Docker IronBarcode fournit des détails sur les bibliothèques système requises pour les déploiements conteneurisés. Lors de l'exécution sous Linux, vous avez généralement besoin de libgdiplus et libc6-dev installés dans votre image Docker. Sous Alpine Linux, un ensemble de paquets légèrement différent est requis ; le guide couvre à la fois les Dockerfiles Ubuntu/Debian et Alpine.

Pour les déploiements AWS Lambda, le guide de déploiement AWS Lambda explique comment regrouper les dépendances natives dans le package de déploiement et configurer les limites de mémoire pour gérer les charges de travail de rendu de codes-barres.

Comment suivre les meilleures pratiques pour la génération de codes-barres en .NET?

Le respect de pratiques cohérentes lors de la génération d'images de codes-barres dans les applications C# fait la différence entre des codes-barres qui fonctionnent correctement sur le terrain et ceux qui échouent au point de vente ou dans l'entrepôt. Les directives ci-dessous s'appliquent quel que soit le format de code-barres choisi.

Choisissez le format de code-barres adapté à votre cas d'utilisation. Sélectionnez un format compatible avec votre environnement de lecture et vos exigences en matière de données. Utilisez les codes QR pour les URL et les données de plus de 80 caractères. Utilisez le code 128 pour l'inventaire et la logistique lorsque les données alphanumériques doivent tenir dans un symbole linéaire compact. Utilisez le code EAN-13 ou UPC-A pour les produits de détail qui doivent être enregistrés dans le système GS1. La page de comparaison des formats de codes-barres d'IronBarcode fournit un tableau comparatif de tous les types pris en charge, de leurs limites de capacité et des cas d'utilisation recommandés.

Veillez toujours à prévoir des zones de silence suffisantes. L'espace blanc autour d'un code-barres, appelé zone de silence, est aussi important que les barres elles-mêmes. Les scanners l'utilisent pour détecter où le symbole commence et où il se termine. Utilisez la méthode SetMargins() pour ajouter au moins 10 pixels de marge de chaque côté pour l'affichage numérique et au moins 2,5 mm pour la sortie d'impression. Interférer avec la zone de silence est l'une des causes les plus fréquentes d'échecs de numérisation en production.

Vérifiez après toute modification de style. Après avoir ajusté les couleurs, appliqué des dégradés ou redimensionné à une dimension non standard, appelez Verify() sur l'objet GeneratedBarcode. Si la valeur renvoyée est fausse, votre code-barres ne sera pas scanné de manière fiable avec le matériel standard. Augmentez le contraste ou réduisez la complexité du changement de style.

Utilisez des modèles de génération par lots pour les productions en grande quantité. Si votre application génère des milliers de codes-barres (par exemple, des étiquettes de produits ou des manifestes d'expédition), traitez-les en boucle et réutilisez la même configuration de style. Évitez de charger les ressources de police ou les objets de configuration à l'intérieur de la boucle, car cela crée une surcharge inutile. L' exemple de génération de codes-barres par lots IronBarcode illustre un modèle de boucle efficace avec un résultat cohérent.

Effectuez des tests sur plusieurs modèles de scanners et dans diverses conditions d'éclairage. La tolérance des scanners de codes-barres aux couleurs à faible contraste, aux petites tailles de modules et à la qualité d'impression varie. Avant le déploiement, testez les codes-barres imprimés avec au moins deux types de scanners différents. Pour les codes QR affichés à l'écran, effectuez des tests avec des appareils photo de téléphones portables dans des conditions d'éclairage claires et sombres. La page relative aux normes de vérification des codes-barres GS1 fournit des directives faisant autorité sur l'évaluation de la qualité des symboles pour les codes-barres utilisés dans le commerce de détail.

Respectez les limites de capacité de données. Chaque format de code-barres a une capacité de données maximale. Le code 128 peut encoder jusqu'à environ 48 caractères sans problème avant que le symbole ne devienne trop large pour être imprimé aux formats d'étiquettes standard. La capacité du code QR dépend du niveau de correction d'erreurs ; au niveau H, le maximum est d'environ 1 273 caractères alphanumériques. Le dépassement de la capacité oblige la bibliothèque soit à lever une exception, soit à dégrader silencieusement la qualité. Consultez la page Wikipédia sur la capacité de données des codes QR pour obtenir un tableau récapitulatif rapide.

Suivez les modèles de disposition .NET . Le GeneratedBarcode et tous les flux renvoyés par ToStream() implémentent IDisposable. Enveloppez-les dans des instructions using pour libérer rapidement les ressources non gérées, en particulier dans les applications Web à haut débit où la génération de codes-barres a lieu à chaque requête.

Comprendre les modes de défaillance courants vous aide également à concevoir un code de génération plus résilient. Les trois causes les plus fréquentes d'échec de numérisation sont : une zone de silence insuffisante, une couleur de barre trop proche de la couleur de fond et un code-barres dont la taille est inférieure à la taille minimale du module pour le format choisi. La méthode Verify() d'IronBarcode les intercepte toutes les trois lors de l'exécution.

Pour lire les codes-barres à partir d'images générées — pour des tests aller-retour ou la numérisation de fichiers téléchargés — consultez le guide du lecteur de codes-barres IronBarcode . L'API de lecture reflète la simplicité de l'API d'écriture et prend en charge la même large gamme de formats.

Les normes ISO/IEC 15417 pour le Code 128 et ISO/IEC 18004 pour les codes QR définissent les spécifications techniques auxquelles IronBarcode est conforme. L'examen de la norme applicable à votre type de code-barres cible vous aide à comprendre les contraintes dans lesquelles la bibliothèque doit fonctionner.

Quelles sont vos prochaines étapes ?

Ce guide traitait de la génération d'images de codes-barres en C# à l'aide IronBarcode : de l'installation de NuGet à la génération de codes Code 128, QR et EAN-13, en passant par le style avancé avec l'API fluide, l'exportation multiformat, le déploiement multiplateforme et les meilleures pratiques de production.

Pour aller plus loin, explorez ces ressources :

Téléchargez IronBarcode pour ajouter la fonctionnalité de code-barres à vos applications .NET , ou démarrez un essai gratuit de 30 jours pour générer des images de code-barres dans votre environnement sans clé de licence.

Questions Fréquemment Posées

Comment installer IronBarcode à l'aide du gestionnaire de packages NuGet ?

Ouvrez Visual Studio, accédez à Outils > Gestionnaire de packages NuGet > Console du Gestionnaire de packages, puis exécutez : Install-Package BarCode. Vous pouvez également rechercher « IronBarcode» dans l’interface utilisateur du Gestionnaire de packages NuGet et cliquer sur Installer.

Quels types de codes-barres pouvez-vous générer avec IronBarcode?

IronBarcode prend en charge la génération d'une large gamme de types de codes-barres, notamment les codes QR, Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-13, EAN-8, PDF-417, Data Matrix, Aztec, et bien plus encore.

IronBarcode peut-il générer des codes-barres dans différents formats d'image ?

Oui, IronBarcode peut générer des codes-barres aux formats PNG, JPEG, BMP, TIFF, PDF et HTML en utilisant les méthodes SaveAsPng, SaveAsJpeg, SaveAsTiff, SaveAsPdf et SaveAsHtmlFile.

IronBarcode est-il compatible avec .NET 10 ?

Oui, IronBarcode est entièrement compatible avec .NET 10, .NET 8, .NET 6, .NET Core, .NET Standard et .NET Framework, ce qui vous permet d'intégrer la génération de codes-barres dans des applications multiplateformes.

Comment personnaliser l'apparence d'un code-barres avec IronBarcode?

IronBarcode propose une API fluide pour la classe GeneratedBarcode. Enchaînez les méthodes telles que ResizeTo(), SetMargins(), ChangeBarCodeColor(), AddAnnotationTextAboveBarcode() et AddBarcodeValueTextBelowBarcode() pour personnaliser l'apparence. Appelez toujours Verify() après la mise en forme pour vérifier que le code-barres reste lisible.

IronBarcode prend-il en charge la lecture et la numérisation des codes-barres ?

Oui, IronBarcode prend en charge la lecture et la numérisation des codes-barres à partir d'images, de fichiers PDF et de flux à l'aide de la classe BarcodeReader et de ses méthodes Read.

Est-il possible de générer des codes-barres en masse avec IronBarcode?

Oui, IronBarcode prend en charge la génération en masse. Parcourez vos données dans une boucle, appelez BarcodeWriter.CreateBarcode() pour chaque élément et appliquez votre chaîne de style standard. Réutilisez les objets de configuration en dehors de la boucle pour optimiser les performances.

Existe-t-il une version d'essai d'IronBarcode ?

Oui, IronBarcode propose une licence d'essai gratuite de 30 jours. Rendez-vous sur ironsoftware.com/csharp/barcode/licensing/#trial-license pour obtenir une clé d'essai et utiliser toutes les fonctionnalités sans filigrane pendant la période d'évaluation.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi