Générateur de matrices de données en C# -- Tutoriel complet avec exemples de code
Les codes-barres Data Matrix permettent de condenser une quantité importante de données encodées dans un espace réduit, ce qui en fait le choix privilégié pour l'étiquetage des produits pharmaceutiques, le marquage des composants électroniques et le suivi des articles dans les systèmes de gestion des stocks où l'espace est limité. Ce tutoriel vous guide pas à pas dans la génération de codes-barres Data Matrix en C# à l'aide d' IronBarcode , la personnalisation de leur apparence, l'encodage de différents types de données et leur exportation vers divers formats de fichiers, le tout avec un code simple et prêt pour la production.
Qu'est-ce qui rend les codes-barres Data Matrix si particuliers ?
Les codes-barres Data Matrix sont des symboles 2D qui encodent des données dans une grille de points noirs et blancs disposés en lignes et en colonnes. Contrairement aux codes-barres linéaires traditionnels tels que UPC ou EAN, ils peuvent stocker jusqu'à 2 335 caractères alphanumériques ou 3 116 chiffres numériques dans un espace aussi petit que 10 x 10 modules. Leur système intégré de correction d'erreurs Reed-Solomon permet une lecture précise par les lecteurs de codes-barres modernes, même lorsque jusqu'à 30 % du symbole est endommagé.
Ces caractéristiques font de Data Matrix un outil idéal pour le marquage de petites pièces, de codes-barres postaux et de composants électroniques, ainsi que pour l'étiquetage dans les centres de soins de santé et de logistique. Le secteur de la santé s'appuie sur les normes GS1 Data Matrix pour le suivi des médicaments, tandis que les fabricants les intègrent à leurs chaînes de production afin d'identifier les produits à l'échelle mondiale. Grâce à la grande quantité de données qu'un seul code-barres peut contenir, leur utilisation est désormais répandue dans tous les secteurs d'activité qui recherchent une traçabilité complète.
La norme ISO/IEC 16022 régit l'encodage Data Matrix et définit la variante ECC200 IronBarcode utilise par défaut. L'ECC200 offre la correction d'erreurs la plus efficace et la plus grande capacité de données de toutes les versions de Data Matrix, ce qui en fait le choix idéal pour les nouvelles implémentations.
| Format | Type de texte | Nombre maximal de caractères | Correction d'erreurs | Cas d'utilisation typique |
|---|---|---|---|---|
| Matrice de données (ECC200) | 2D | 2 335 caractères alphanumériques | Reed-Solomon (~30%) | Industrie pharmaceutique, électronique, logistique |
| Code QR | 2D | 4 296 caractères alphanumériques | Reed-Solomon (jusqu'à 30 %) | URL, marketing, paiements |
| UPC-A | 1D | 12 chiffres | Aucune | Identification des produits de détail |
| Code 128 | 1D | ~50 caractères | Somme de contrôle uniquement | Expédition, logistique générale |
Comment installer la bibliothèque de codes-barres dans un projet C# ?
L'installation IronBarcode prend moins d'une minute avec le gestionnaire de packages NuGet . Ouvrez la console du Package Manager dans Visual Studio et exécutez :
Install-Package BarCode

Vous pouvez également rechercher BarCode d' Iron Software dans l'interface graphique du gestionnaire de packages NuGet . Après l'installation, ajoutez l'espace de noms à votre fichier C# :
using IronBarCode;
using IronBarCode;
Imports IronBarCode
Voilà toute la configuration requise. IronBarcode gère en interne tout l'encodage complexe Data Matrix, conformément à la norme ISO/IEC 16022, vous permettant ainsi de vous concentrer sur la logique de l'application. Pour des options de configuration supplémentaires telles que l'installation hors ligne ou les sources de packages personnalisées, consultez le guide d'installation IronBarcode et la page d'installation avancée de NuGet .
Cadres cibles pris en charge
IronBarcode cible .NET 10, .NET 8, .NET 6, .NET 5, .NET Standard 2.0 et .NET Framework 4.6.2 et versions ultérieures. Si votre projet cible l'un de ces frameworks, le package NuGet s'installe sans configuration supplémentaire.
Comment créer votre premier code-barres Data Matrix ?
La génération d'un code-barres Data Matrix ne nécessite qu'une seule ligne de code :
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);
// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);
// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
' Create a Data Matrix barcode with product information
Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix)
' Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png")
Ce code crée un code-barres Data Matrix encodant le texte PROD-12345-2024 et l'enregistre sous la forme d'un fichier PNG. Le paramètre BarcodeWriterEncoding.DataMatrix indique à IronBarcode d'utiliser le format Data Matrix. Le code-barres résultant applique automatiquement la spécification ECC200, qui inclut une correction d'erreur intégrée et garantit une lecture fiable dans des conditions réelles.
Sortie BarCode

Pour une utilisation immédiate dans les applications, récupérez le code-barres sous forme d'image bitmap ou exportez-le directement au format PDF :
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();
// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();
// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
' Get barcode as a bitmap for direct display in a UI control
Dim barcodeBitmap = myBarcode.ToBitmap()
' Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf")
IronBarcode prend en charge l'exportation aux formats PNG, JPEG, BMP, GIF, TIFF, SVG et PDF. Vous pouvez également créer et apposer des codes-barres sur des documents PDF existants afin de les intégrer dans les bons de commande, les factures ou les manifestes d'expédition.
Quels types de données peut-on encoder dans un code-barres Data Matrix ?
Data Matrix prend en charge plusieurs modes d'encodage, chacun optimisé pour un jeu de caractères différent. IronBarcode sélectionne automatiquement le mode le plus efficace en fonction du contenu que vous fournissez :
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");
// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");
// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");
// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");
// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");
// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");
// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
Imports System
' Encode alphanumeric product codes
Dim productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix)
productCode.SaveAsImage("product-code.png")
' Encode numeric serial numbers (numeric mode uses less space)
Dim serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix)
serialNumber.SaveAsImage("serial-number.png")
' Encode URLs for product landing pages or support portals
Dim urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix)
urlCode.SaveAsImage("url-datamatrix.png")
' Encode Unicode text for international applications
Dim unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix)
unicodeBarcode.SaveAsImage("unicode-datamatrix.png")
Les données numériques utilisent un mode d'encodage compact qui réduit la taille du code-barres par rapport au texte alphanumérique. L'encodage binaire gère les caractères spéciaux et le texte Unicode sans configuration manuelle. IronBarcode sélectionne automatiquement le mode d'encodage le plus efficace, vous n'avez donc pas besoin de le spécifier explicitement.
Sortie
Ici, les quatre types de données ont été encodés avec succès dans des codes-barres Data Matrix valides.

Pour un aperçu plus détaillé des options d'encodage et de la prise en charge des jeux de caractères, consultez la documentation sur l'encodage IronBarcode et la référence des types de données de code-barres .
Comment personnaliser l'apparence d'un code-barres Data Matrix ?
IronBarcode propose un ensemble complet d' options de personnalisation des codes-barres permettant de contrôler la taille, la couleur, les annotations et les marges :
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);
// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);
// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");
// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);
customBarcode.SaveAsImage("custom-datamatrix.png");
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);
// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);
// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");
// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);
customBarcode.SaveAsImage("custom-datamatrix.png");
' Create barcode with custom styling
Dim customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix)
' Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500)
' Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue)
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray)
' Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024")
' Set margins to preserve the required quiet zone
customBarcode.SetMargins(10)
customBarcode.SaveAsImage("custom-datamatrix.png")
Ces personnalisations permettent de répondre aux exigences en matière d'image de marque de l'entreprise ou aux normes d'étiquetage spécifiques. La méthode ResizeTo conserve les proportions correctes du module, ce qui est essentiel pour la lisibilité du Data Matrix à n'importe quelle distance du scanner. Les changements de couleur permettent de s'adapter à des procédés d'impression spéciaux ou à des contraintes liées au support, comme les étiquettes colorées ou les matériaux métalliques. La marge de la zone silencieuse définie par SetMargins répond à l'exigence minimale d'espace blanc définie dans la spécification ISO/IEC 16022.

Choisir la bonne taille de code-barres
La taille minimale lisible d'un code-barres Data Matrix dépend du scanner et de la résolution d'impression. Pour la numérisation à usage général, une taille de module d'au moins 0,3 mm est recommandée. Avec une résolution d'impression de 300 DPI, un code-barres de 500 pixels mesure environ 42 mm de côté, ce qui est suffisant pour une lecture manuelle fiable. Pour les étiquettes plus petites, augmentez la résolution (DPI) ou réduisez la charge utile des données afin que le symbole reste dans une plage de taille scannable.
Comment générer plusieurs codes-barres par lot ?
La génération par lots réduit le travail nécessaire à la création de grands ensembles de codes Data Matrix pour les séries de production, les étiquettes d'expédition ou les stocks sérialisés :
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };
foreach (string id in productIds)
{
var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
batchBarcode.ResizeTo(150, 150);
batchBarcode.AddAnnotationTextBelowBarcode(id);
// Save each barcode with a unique filename
string filename = $"barcode_{id.Replace("-", "_")}.png";
batchBarcode.SaveAsImage(filename);
}
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };
foreach (string id in productIds)
{
var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
batchBarcode.ResizeTo(150, 150);
batchBarcode.AddAnnotationTextBelowBarcode(id);
// Save each barcode with a unique filename
string filename = $"barcode_{id.Replace("-", "_")}.png";
batchBarcode.SaveAsImage(filename);
}
' Generate barcodes for a batch of products
Dim productIds As String() = {"PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005"}
For Each id As String In productIds
Dim batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix)
batchBarcode.ResizeTo(150, 150)
batchBarcode.AddAnnotationTextBelowBarcode(id)
' Save each barcode with a unique filename
Dim filename As String = $"barcode_{id.Replace("-", "_")}.png"
batchBarcode.SaveAsImage(filename)
Next
Ce modèle convient aux flux de travail logistiques et de soins de santé qui nécessitent de grands ensembles d'étiquettes, chacune associée à un identifiant unique. Pour les applications web, l'intégration directe des codes-barres dans les documents PDF ou leur transmission sous forme de tableaux d'octets permet la génération d'étiquettes en temps réel sans enregistrement de fichiers intermédiaires.

Traitement asynchrone et multithread pour les grands lots
Lors de la génération de milliers de codes-barres, le traitement synchrone devient un goulot d'étranglement. IronBarcode offre des capacités de traitement asynchrone et multithread qui vous permettent de générer des codes-barres en parallèle sur plusieurs cœurs de processeur. Pour un lot de 10 000 étiquettes, le traitement parallèle peut réduire le temps de génération total d'un ordre de grandeur par rapport aux boucles séquentielles.
Pour les scénarios à haut débit, envisagez de regrouper les codes-barres dans des feuilles PDF à l'aide de l'API d'estampillage PDF d'IronBarcode plutôt que d'enregistrer des milliers de fichiers image individuels, ce qui peut créer une surcharge du système de fichiers sur les déploiements Windows et Linux.
Comment lire et vérifier les codes-barres Data Matrix ?
La génération de codes-barres ne représente que la moitié du processus ; vérifier que les scanners peuvent les lire correctement en constitue la boucle de qualité. IronBarcode intègre un lecteur de codes-barres qui permet de décoder une image générée immédiatement après sa création.
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");
// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
Console.WriteLine($"Decoded value: {result.Value}");
Console.WriteLine($"Format: {result.BarcodeType de texte}");
}
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");
// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
Console.WriteLine($"Decoded value: {result.Value}");
Console.WriteLine($"Format: {result.BarcodeType de texte}");
}
Imports System
' Generate a barcode
Dim generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix)
generated.SaveAsImage("verify-test.png")
' Read it back to confirm correct encoding
Dim results = BarcodeReader.Read("verify-test.png")
For Each result In results
Console.WriteLine($"Decoded value: {result.Value}")
Console.WriteLine($"Format: {result.BarcodeType de texte}")
Next
Ce modèle de vérification aller-retour est particulièrement précieux dans les secteurs réglementés tels que l'industrie pharmaceutique, où la réglementation DSCSA exige que les codes-barres sérialisés sur les emballages de médicaments sur ordonnance soient à la fois lisibles par machine et correctement formatés. L'exécution d'une vérification de lecture dans le cadre du pipeline de génération permet de détecter les erreurs d'encodage avant que les étiquettes n'atteignent la chaîne de production.
Pour des scénarios de lecture plus avancés, consultez la documentation sur la lecture des codes- IronBarcode et le guide sur la lecture des codes-barres à partir de fichiers PDF .
Considérations courantes en matière de compatibilité de numérisation
Les différentes versions de micrologiciel des scanners interprètent les symboles Data Matrix avec une tolérance variable concernant les zones de silence et le contraste des modules. Pour les scanners portables anciens, il est recommandé d'augmenter la taille des modules, d'utiliser des couleurs noir sur blanc à contraste élevé et de maintenir une zone de silence d'au moins deux modules de large. Le guide GS1 relatif aux identifiants d'application fournit des modèles d'encodage pour les identifiants de la chaîne d'approvisionnement, tels que les numéros de lot, les dates de péremption et les GTIN, au sein d'un même symbole Data Matrix.
Quelles sont vos prochaines étapes ?
La génération de codes-barres Data Matrix en C# avec IronBarcode suit un schéma cohérent : installez le package NuGet, appelez BarcodeWriter.CreateBarcode avec BarcodeWriterEncoding.DataMatrix, appliquez toutes les personnalisations requises et exportez vers votre format cible. La même API gère tout, des prototypes à code-barres unique aux pipelines de traitement par lots à haut volume.
Voici les pistes recommandées pour aller plus loin :
- Explorez la lecture des codes-barres : Le guide de lecture IronBarcode explique comment décoder les codes-barres à partir d'images, de fichiers PDF et de flux vidéo en direct.
- Essayez d'autres formats 2D : IronBarcode génère également des codes QR , PDF417, Aztec et tous les principaux formats 1D en utilisant la même API.
- Intégrer des codes-barres dans les documents : Le tutoriel sur l'estampillage PDF montre comment ajouter des codes-barres aux PDF existants par programmation.
- Passez à l'échelle avec le traitement asynchrone : consultez le guide sur le traitement asynchrone et multithread pour paralléliser les tâches par lots volumineuses.
- Consultez la section relative aux licences : La page de licences IronBarcode répertorie les options allant de la redistribution pour développeurs à la redistribution OEM.
Démarrez un essai gratuit pour tester toutes les fonctionnalités sans restrictions, ou consultez la documentation complète IronBarcode pour obtenir des références API détaillées et des exemples de code supplémentaires.
Questions Fréquemment Posées
Qu'est-ce qu'un code-barres Data Matrix ?
Un code-barres Data Matrix est un symbole 2D conforme à la norme ISO/IEC 16022 qui encode jusqu'à 2 335 caractères alphanumériques ou 3 116 chiffres dans une grille compacte. Il est couramment utilisé pour l'étiquetage pharmaceutique, le marquage électronique et la gestion des stocks.
Comment générer un code-barres Data Matrix en C# ?
Appelez BarcodeWriter.CreateBarcode avec votre chaîne de données et BarcodeWriterEncoding.DataMatrix, puis appelez SaveAsImage ou SaveAsPdf sur le résultat. IronBarcode gère automatiquement l'encodage ECC200 et la correction d'erreurs.
Quels sont les avantages de l'utilisation d'IronBarcode pour la génération de Data Matrix ?
IronBarcode génère des codes-barres ECC200 Data Matrix en une seule ligne de code, gère la sélection automatique du mode d'encodage et exporte aux formats PNG, PDF, SVG et autres sans dépendances supplémentaires.
IronBarcode peut-il exporter des codes-barres Data Matrix vers différents formats de fichiers ?
Oui. IronBarcode exporte les codes-barres Data Matrix aux formats PNG, JPEG, BMP, GIF, TIFF, SVG et PDF. Vous pouvez également intégrer des codes-barres directement dans des documents PDF existants.
Est-il possible de personnaliser les codes-barres Data Matrix avec IronBarcode ?
Oui. IronBarcode propose ResizeTo pour les dimensions, ChangeBarCodeColor et ChangeBackgroundColor pour la couleur, AddAnnotationTextBelowBarcode pour le texte lisible par l'homme et SetMargins pour le contrôle de la zone silencieuse.
Pour quels secteurs les codes-barres Data Matrix sont-ils particulièrement adaptés ?
Les codes-barres Data Matrix sont largement utilisés dans l'industrie pharmaceutique pour la conformité à la DSCSA, dans l'électronique pour l'identification des composants, dans la logistique pour le suivi des colis et dans le secteur de la santé pour l'étiquetage des médicaments conforme à la norme GS1.
Quelle version de Data Matrix IronBarcode génère-t-il ?
IronBarcode génère par défaut des codes-barres Data Matrix ECC200. L'ECC200 est la version actuelle de la norme ISO/IEC 16022, offrant la plus grande capacité de données et la correction d'erreurs Reed-Solomon.
Pourquoi utiliser les codes-barres Data Matrix plutôt que d'autres codes 2D ?
Les codes-barres Data Matrix sont privilégiés pour leur haute densité de données dans un encombrement réduit, leur correction d'erreurs Reed-Solomon qui résiste à des dommages allant jusqu'à 30 % des symboles, et leur normalisation ISO/IEC reconnue dans les industries réglementées du monde entier.



