Comment créer un code-barres à partir de données en C#

Créer un BarCode à partir de texte, URLs, IDs & données binaires en C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode permet aux développeurs C# de générer des codes-barres à partir de diverses sources de données, notamment des chaînes, des tableaux d'octets et des flux de mémoire à l'aide de la méthode BarcodeWriter.CreateBarcode() avec la prise en charge de plusieurs formats de codes-barres tels que QR Code, Code128 et PDF417.

avant-propos:2(Démarrage rapide : Créer un code-barres à partir d'une chaîne en une seule ligne)

Utilisez l'API d'IronBarcode pour générer des codes-barres avec une configuration minimale. Cet exemple montre comment créer un code-barres à partir d'une simple chaîne de caractères en utilisant une seule ligne de code. Pour des exemples complets, consultez le guide Barcode Quickstart.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronBarcode avec le gestionnaire de packages NuGet

    PM > Install-Package BarCode

  2. Copiez et exécutez cet extrait de code.

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Order123", IronBarCode.BarcodeWriterEncoding.Code128);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Comment créer un BarCode à partir d'une chaîne de caractères?

Quels formats de BarCode fonctionnent le mieux pour différents types de chaînes de caractères?

Les différents formats de BarCode sont optimisés pour des types de données et des cas d'utilisation spécifiques. Comprendre les formats de codes-barres pris en charge permet de sélectionner le bon encodage :

  • Codes QR : ils sont idéaux pour les URL, les adresses électroniques et les données textuelles volumineuses. Prend en charge jusqu'à 4 296 caractères alphanumériques avec correction des erreurs.
  • <Code128 : idéal pour les données alphanumériques telles que les numéros de commande et les codes de série. Très efficace pour les applications modernes.
  • PDF417 : Parfait pour les données complexes telles que les billets d'avion et les documents d'identité. Stocke jusqu'à 1 850 caractères alphanumériques.
  • Code93 : Excellent pour les services postaux et le suivi des stocks avec des données numériques compactes.
  • Aztec : Optimal pour la billetterie mobile et les transports, il nécessite moins d'espace que les codes QR.

Le code suivant démontre comment écrire des BarCodes avec une chaîne de caractères :

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-string.cs
using IronBarCode;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/barcode/";
string receiptID = "2023-08-04-12345"; // Receipt ID (numeric id)
string flightID = "FLT2023NYC-LAX123456"; // Flight ID (alphanumeric id)
string number = "1234";

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Quels sont les résultats générés pour le BarCode?

Ce code encode cinq exemples de données différentes dans cinq types de codes-barres : texte simple vers Aztec, URL vers QR Code, ID numérique vers Code 93, ID alphanumérique vers PDF417, et nombre vers Codabar. Les images sont enregistrées au format PNG. Pour les options d'exportation avancées, consultez le guide Créer un BarCode en tant qu'image.

Aztec barcode containing 'Hello, World!' text with characteristic square spiral pattern
QR code generated from URL input demonstrating barcode creation functionality
Generated Code93 barcode example showing vertical black and white bars pattern
PDF417 barcode with stacked rows encoding flight ID alphanumeric data
Codabar barcode displaying numeric data with start/stop characters

Comment personnaliser les BarCodes générés?

Après avoir créé votre code-barres, améliorez son apparence à l'aide des fonctionnalités de style d'IronBarcode. Voici comment créer un BarCode personnalisé avec des couleurs, des annotations et des marges :

using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValueTexteBelowBarcode();
myBarcode.AddAnnotationTexteAboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
using IronBarCode;

// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);

// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);

// Add text annotations
myBarcode.AddBarcodeValueTexteBelowBarcode();
myBarcode.AddAnnotationTexteAboveBarcode("Product SKU", Font.Arial, Color.Black, 12);

// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
$vbLabelText   $csharpLabel

Pour plus d'options de style, explorez le tutoriel Personnaliser et styliser les BarCodes.

Comment créer un BarCode à partir d'un tableau d'octets?

Pourquoi le codage des caractères est-il important pour les BarCodes à matrice d'octets?

Pour créer des codes-barres à partir de tableaux d'octets, assurez-vous que le codage des caractères s'aligne sur le BarcodeEncoding requis, car chaque type de code-barres accepte un codage des caractères différent. La compréhension des formats de données de sortie garantit la compatibilité. Voici les encodages de caractères disponibles dans IronBarcode :

  • ASCII : Utilise 7 bits par caractère pour les lettres, les chiffres et la ponctuation en anglais. Exemple : 'A' = 65.
  • UTF-8 : Codage de longueur variable pour tous les caractères Unicode. Exemple : € = 0xE2 0x82 0xAC.
  • UTF-16 : Utilise des séquences de 16 bits pour Unicode. Exemple : α = 0x03B1.
  • UTF-32 : Séquence fixe de 32 bits par caractère. Exemple : α = 0x000003B1.
  • ISO-8859-1 : Extension de l'ASCII pour les langues d'Europe occidentale. Exemple : é = 233.

[{i:L'encodage de caractères par défaut dans IronBarcode est ISO-8859-1.}]

Comment convertir des tableaux d'octets en BarCodes?

Le code suivant démontre la génération d'un BarCode à partir de données d'octets :

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-byte.cs
using IronBarCode;
using System.Text;

byte[] text = Encoding.UTF8.GetBytes("Hello, World!");
byte[] url = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
byte[] receiptID = Encoding.UTF8.GetBytes("2023-08-04-12345"); // Receipt ID (numeric id)
byte[] flightID = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456"); // Flight id (alphanumeric id)
byte[] number = Encoding.UTF8.GetBytes("1234");

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Cet extrait transforme cinq chaînes de caractères en objets System.Byte[]. Pour convertir ces tableaux d'octets en codes-barres, passez-les à BarcodeWriter avec le BarcodeEncoding souhaité. En option, définissez MaxWidth et MaxHeight pour la taille du code-barres.

Travailler avec des données binaires et des caractères spéciaux

Lorsque vous travaillez avec des données binaires ou des caractères spéciaux, utilisez L'écriture de codes-barres Unicode pour la prise en charge des caractères internationaux. Voici un exemple de traitement de données binaires :

using IronBarCode;
using System.Texte;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
using IronBarCode;
using System.Texte;
using System.IO;

// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);

// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
    base64Data, 
    BarcodeEncoding.QRCode
);

// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);

// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
$vbLabelText   $csharpLabel

Comment créer un BarCode à partir d'un flux de mémoire?

Quand devrais-je utiliser les flux de mémoire pour la génération de BarCodes?

Les flux de mémoire fonctionnent mieux lors du traitement de données qui ne nécessitent pas de stockage sur disque, comme le contenu généré dynamiquement dans les applications web ou le traitement des bases de données. Le guide Exporter un BarCode en tant que flux fournit un contexte supplémentaire pour les flux de travail basés sur les flux.

Le code suivant démontre la génération d'un BarCode à partir d'un flux de mémoire :

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-stream.cs
using IronBarCode;
using System.IO;
using System.Text;

MemoryStream text = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"));
MemoryStream url = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"));
MemoryStream receiptID = new MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")); // Receipt ID (numeric id)
MemoryStream flightID = new MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")); // Flight id (alphanumeric id)
MemoryStream number = new MemoryStream(Encoding.UTF8.GetBytes("1234"));

BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
$vbLabelText   $csharpLabel

Quels sont les avantages de l'utilisation des flux de mémoire?

Ce snippet crée un MemoryStream à partir d'un objet System.Byte[], puis l'utilise comme entrée dans BarcodeWriter.CreateBarcode() pour générer un code-barres à partir des données du flux de mémoire. Les flux de mémoire offrent plusieurs avantages :

  1. Performance : Pas d'opérations d'E/S sur disque, plus rapide pour les données temporaires
  2. Sécurité : Les données restent en mémoire, ce qui réduit l'exposition aux informations sensibles
  3. Flexibilité : intégration facile avec les API et les bibliothèques basées sur les flux
  4. Efficacité des ressources : Gestion et élimination automatiques de la mémoire

Exemple de traitement avancé des flux

Pour les scénarios complexes impliquant le traitement de flux, combinez IronBarcode avec d'autres opérations de flux :

using IronBarCode;
using System.IO;
using System.Texte;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var orderNombres = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNombres);
using IronBarCode;
using System.IO;
using System.Texte;

// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
    var barcodeStreams = new List<Stream>();

    foreach (var item in dataItems)
    {
        // Convert string to stream
        var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));

        // Generate barcode from stream
        var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);

        // Export barcode back to stream
        var outputStream = new MemoryStream();
        barcode.SaveAsPng(outputStream);
        outputStream.Position = 0; // Reset position for reading

        barcodeStreams.Add(outputStream);
    }

    return barcodeStreams;
}

// Usage example
var orderNombres = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNombres);
$vbLabelText   $csharpLabel

Pour les opérations asynchrones et l'amélioration des performances dans les applications multithread, voir le guide Utiliser Async et Multithread.

Questions Fréquemment Posées

Comment créer un BarCode à partir d'un texte en C# ?

Vous pouvez créer un code-barres à partir d'un texte en C# à l'aide d'IronBarcode avec une seule ligne de code : BarcodeWriter.CreateBarcode("YourText", BarcodeWriterEncoding.Code128). IronBarcode prend en charge plusieurs formats, notamment QR Code, Code128, PDF417, Aztec, etc.

Quels types de données puis-je encoder dans des codes-barres ?

IronBarcode permet d'encoder différents types de données, notamment des chaînes de caractères, des URL, des identifiants, des données binaires (tableaux d'octets) et des flux de mémoire. La bibliothèque gère automatiquement la conversion et l'encodage en fonction du format de code-barres que vous avez choisi.

Quel format de BarCode dois-je utiliser pour les URL ?

Les codes QR sont le meilleur choix pour encoder des URL dans IronBarcode. Les codes QR peuvent stocker jusqu'à 4 296 caractères alphanumériques et incluent des capacités de correction d'erreurs, ce qui les rend idéaux pour les adresses web et les adresses électroniques.

Quel est le meilleur format de code-barres pour les numéros de commande et les codes de série ?

Code128 est le format idéal pour les données alphanumériques telles que les numéros de commande et les codes de série lors de l'utilisation d'IronBarcode. Il est très efficace pour les applications modernes et offre une excellente densité de données pour les jeux de caractères mixtes.

Puis-je créer des codes-barres à partir de données binaires ?

Oui, IronBarcode prend en charge la création de codes-barres à partir de données binaires utilisant des tableaux System.Byte[] ou des entrées System.IO.Stream via la méthode CreateBarcode, ce qui vous permet d'encoder n'importe quel type d'information binaire.

Dans quels formats d'image puis-je enregistrer des codes-barres ?

IronBarcode permet d'enregistrer les codes-barres générés dans plusieurs formats d'image, notamment PNG, JPEG, BMP, GIF et TIFF. La bibliothèque offre des options d'exportation flexibles pour différents cas d'utilisation.

Quelle quantité de données puis-je stocker dans un code-barres PDF417 ?

Les codes-barres PDF417 créés avec IronBarcode peuvent stocker jusqu'à 1 850 caractères alphanumériques, ce qui les rend parfaits pour les données complexes telles que les billets d'avion, les étiquettes d'expédition et les pièces d'identité gouvernementales.

Quel est le meilleur format de code-barres pour la billetterie mobile ?

Les codes-barres aztèques sont optimaux pour les applications mobiles de billetterie et de transport lorsqu'on utilise IronBarcode. Ils occupent moins d'espace que les codes QR tout en conservant une grande capacité de données et une bonne lisibilité sur les appareils mobiles.

Hairil Hasyimi Bin Omar
Ingénieur logiciel
Comme tous les grands ingénieurs, Hairil est un apprenant avide. Il affine ses connaissances en C#, Python et Java, utilisant ces connaissances pour apporter de la valeur aux membres de l'équipe dans toute Iron Software. Hairil a rejoint l'équipe d'Iron Software depuis l'Université Teknologi MARA en Malaisie, ...
Lire la suite
Prêt à commencer?
Nuget Téléchargements 2,035,202 | Version : 2025.12 vient de sortir