Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Construire un SDK de code-barres C#: Générer, Lire et Scanner les codes-barres avec une seule bibliothèque

La plupart des projets C# de SDK de codes-barres commencent par le même casse-tête : assembler des bibliothèques distinctes pour la génération, la lecture et l'exportation, puis gérer la compatibilité entre les différents types de codes-barres et les plateformes. IronBarcode élimine complètement ce frottement. Il s'agit d'une bibliothèque .NET unique qui gère toutes les opérations de code-barres dont les développeurs ont généralement besoin à partir d'un SDK de lecteur de code-barres dédié, de la création de codes-barres linéaires et de codes QR à la numérisation de plusieurs codes-barres à partir d'images imparfaites et de fichiers PDF.

Dans cet article, nous vous présenterons les fonctionnalités essentielles qui font IronBarcode une solution tout-en-un pour les projets SDK de codes-barres : génération d'images de codes-barres, lecture des données de codes-barres à partir de fichiers et configuration des paramètres de numérisation avancés pour une précision de qualité professionnelle. Chaque exemple de code suivant s'exécute tel quel dans une application console .NET .

NuGet Installer avec NuGet

PM >  Install-Package BarCode

Consultez IronBarcode sur NuGet pour une installation rapide. Avec plus de 10 millions de téléchargements, il transforme le développement PDF avec C#. Vous pouvez également télécharger le DLL.

Que doit gérer un SDK de codes-barres dans les projets .NET ?

Un kit de développement logiciel (SDK) performant pour scanner de codes-barres doit couvrir trois opérations essentielles : la génération de codes-barres, la lecture des données de codes-barres à partir d'images et de documents, et la gestion des problèmes de qualité de numérisation rencontrés dans le monde réel. Les meilleurs kits de développement logiciel (SDK) pour lecteurs de codes-barres prennent également en charge une large gamme de symbologies sans nécessiter de bibliothèques distinctes pour chacune d'elles.

IronBarcode prend en charge à la fois les codes-barres linéaires (Code 128, Code 39, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar) et les codes-barres 2D (QR Code, Data Matrix, PDF417, Aztec, MaxiCode). Cette compatibilité signifie que les développeurs .NET peuvent traiter tous les types de codes, des étiquettes UPC-A de vente au détail aux codes QR d'entrepôt, à l'aide d'une seule DLL de code-barres, sans dépendances supplémentaires ni binaires natifs spécifiques à la plateforme. Une licence d'essai gratuite donne un accès complet à toutes les fonctionnalités pendant 30 jours.

La bibliothèque fonctionne sur les systèmes d'exploitation Windows, macOS et Linux, et prend en charge les déploiements d'applications .NET MAUI et Android. Il s'intègre également aux outils de reporting tels que Crystal Reports pour les scénarios nécessitant la génération de codes-barres intégrés dans les documents commerciaux. Que le projet soit une application console, un scanner mobile .NET MAUI ou un lecteur de codes-barres côté serveur traitant des milliers d'images, la même API SDK de scanner de codes-barres gère tout.

Comment les développeurs peuvent-ils générer des images de codes-barres en C# ?

La méthode BarcodeWriter.CreateBarcode génère une image de code-barres à partir d'une valeur de chaîne et d'une symbologie spécifiée en un seul appel. L'objet GeneratedBarcode renvoyé peut être enregistré au format PNG, BMP, JPEG, PDF, HTML ou exporté dans des formats vectoriels tels que SVG.

using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");
Imports IronBarCode

' Generate a Code 128 barcode image from string data
Dim barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128)
barcode.AddAnnotationTextAboveBarcode("Shipping Label")
barcode.AddBarcodeValueTextBelowBarcode()
barcode.ResizeTo(500, 150)
barcode.SaveAsPng("shipping-label.png")

' Create a styled QR code with a logo
Dim qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300)
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray)
qrCode.SaveAsPng("tracking-qr.png")
$vbLabelText   $csharpLabel

Images de codes-barres générées

Créer un SDK de codes-barres en C# : Générer, lire et scanner des codes-barres avec une seule bibliothèque : Image 1 - Générer des images de codes-barres et de codes QR

La classe BarcodeWriter accepte les données sous forme de chaîne de caractères, de tableau d'octets ou de flux, offrant ainsi une grande flexibilité pour différentes sources de données. L'énumération BarcodeEncoding contrôle la symbologie ; utilisez BarcodeEncoding.QRCode pour un code QR, BarcodeEncoding.UPCA pour les étiquettes de vente au détail UPC-A, ou l'un des formats de code-barres pris en charge . Pour les codes QR stylisés, la classe dédiée QRCodeWriter prend en charge les niveaux de correction d'erreurs et l'intégration de logos, ce qui simplifie la création de codes de marque.

L'objet GeneratedBarcode fournit également des méthodes permettant de personnaliser les propriétés du code-barres telles que les marges, les couleurs et le texte d'annotation. Les images de codes-barres peuvent être exportées aux formats d'images raster (PNG, BMP, JPEG) et vectoriels, ou rendues directement en HTML pour les applications Web. Consultez les exemples de création de codes-barres pour connaître les options de sortie supplémentaires.

Comment fonctionne le lecteur de codes-barres avec les fichiers image et PDF ?

La méthode BarcodeReader.Read accepte un chemin de fichier image, un tableau d'octets, une image bitmap ou un flux et renvoie une collection BarcodeResults contenant tous les codes-barres trouvés dans l'entrée. Chaque BarcodeResult expose la valeur du code-barres, le type d'encodage, le numéro de page, les données binaires et la région de l'image du code-barres.

using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}
Imports IronBarCode

' Use the barcode reader to decode all barcodes from an image file
Dim results = BarcodeReader.Read("multiple-barcodes.png")
For Each result In results
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}")
Next

' The barcode reader also scans multi-page PDF documents
Dim pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf")
For Each item In pdfResults
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}")
Next
$vbLabelText   $csharpLabel

Sortie de lecture des codes-barres

Créer un SDK de codes-barres en C# : Générer, lire et scanner des codes-barres avec une seule bibliothèque : Image 2 - Lecture des données de sortie des codes-barres

Le lecteur de codes-barres effectue par défaut la reconnaissance des codes-barres pour toutes les symbologies principales, détectant automatiquement les codes-barres linéaires, les codes-barres 2D et les codes QR sans que le développeur ait besoin de spécifier le type à scanner. Lors de la numérisation d'un PDF, ReadPdf traite chaque page et renvoie les résultats avec les numéros de page, ce qui est idéal pour l'indexation de documents et les flux de travail d'archivage.

Chaque objet BarcodeResult de la collection donne accès aux données du code-barres décodées sous forme de chaîne de caractères et de tableau d'octets. Ceci est particulièrement utile lors du traitement des codes Data Matrix ou d'autres symbologies qui encodent des données binaires. Le résultat du lecteur de codes-barres inclut également les coordonnées de position du code , permettant aux applications de localiser chaque code dans l'image source. Pour un traitement par lots sur un dossier entier d'images, transmettez au lecteur de codes-barres une chaîne de chemins d'accès (par exemple, IEnumerable<string>) en activant le multithreading pour une exécution parallèle.

Comment un kit de développement logiciel (SDK) de lecteur de codes-barres peut-il gérer la qualité d'image réelle ?

Les images de codes-barres réelles, provenant de caméras d'entrepôt, de captures mobiles ou de documents numérisés, sont rarement parfaites au pixel près. La classe BarcodeReaderOptions offre un contrôle précis de la vitesse de numérisation, des symbologies attendues, des filtres de correction d'image et du traitement par lots multithread pour obtenir une reconnaissance de code-barres très précise, même sur des entrées endommagées ou déformées.

using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
    Multithreaded = true,
    MaxParallelThreads = 4,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter()
    }
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}");
}
using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
    Multithreaded = true,
    MaxParallelThreads = 4,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter()
    }
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}");
}
Imports IronBarCode

' Configure the barcode reader for challenging, real-world image quality
Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Detailed,
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional Or BarcodeEncoding.QRCode,
    .Multithreaded = True,
    .MaxParallelThreads = 4,
    .ImageFilters = New ImageFilterCollection From {
        New SharpenFilter(),
        New ContrastFilter()
    }
}

' Scan multiple barcodes from a noisy image with high accuracy
Dim results = BarcodeReader.Read("camera-capture.jpg", options)
For Each barcode In results
    Console.WriteLine($"Detected: {barcode.BarcodeType} — {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Résultat de la numérisation d'images de codes-barres bruitées

Créer un SDK de codes-barres en C# : Générer, lire et scanner des codes-barres avec une seule bibliothèque : Image 3 - Exemple de résultat pour le scan d'une image de code-barres bruitée

Définir ExpectBarcodeTypes sur un sous-ensemble spécifique de symbologies (plutôt que de rechercher tous les types) améliore considérablement la vitesse et la précision. L'énumération ReadingSpeed ​​propose quatre niveaux : Faster, Balanced, Detailed et ExtremeDetail, permettant aux développeurs d'ajuster le compromis entre le temps de traitement et la précision de la reconnaissance des codes-barres. La collection ImageFilterCollection applique des filtres de prétraitement tels que l'accentuation, le réglage du contraste et le seuillage adaptatif avant que le moteur de numérisation ne traite l'image du code-barres.

L'indicateur ExpectMultipleBarcodes indique au moteur de continuer la numérisation après avoir trouvé la première correspondance, ce qui est essentiel lorsque vous devez numériser plusieurs codes-barres sur une seule étiquette ou page de document. Combinée à l'option Multithreaded = true, la bibliothèque répartit le traitement par lots sur les cœurs du processeur pour les scénarios de numérisation à haut débit. Pour une analyse plus approfondie de ces paramètres, le tutoriel sur la lecture des codes-barres couvre chaque option de configuration avec des exemples de code.

Quels types de codes-barres et quelles plateformes sont pris en charge ?

IronBarcode couvre les symbologies de codes-barres les plus utilisées dans les secteurs du commerce de détail, de la logistique, de la santé et des applications Enterprise . Le tableau suivant récapitule les types de codes-barres pris en charge et les plateformes cibles.

Catégorie Formats pris en charge
Codes-barres linéaires Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar, ITF, MSI, Codabar
Codes-barres 2D Code QR, Data Matrix, PDF417, Aztec, MaxiCode
Formats d'image PNG, JPEG, BMP, GIF, TIFF, SVG
Formats de documents PDF (multipage), HTML
Plateformes .NET .NET 8/7/6, .NET Core, .NET Framework 4.6.2+, .NET Standard 2.0+
Types d'applications Console, Windows Forms, WPF, ASP.NET, .NET MAUI, Blazor
Systèmes d'exploitation Windows, macOS, Linux, Android (via .NET MAUI)

La bibliothèque s'installe soit sous forme de package NuGet unique (BarCode), soit sous forme de DLL de code-barres autonome via téléchargement direct. Aucune dépendance SDK native n'est requise ; l'intégralité du SDK du lecteur de codes-barres est fournie sous forme de code .NET géré. Installez-le dans Visual Studio via le gestionnaire de packages NuGet , ou exécutez dotnet add package BarCode depuis l'interface de ligne de commande. Pour les scénarios de déploiement nécessitant un contrôle au niveau de la DLL, le téléchargement de la DLL IronBarcode fournit un package ZIP prêt pour une intégration manuelle.

IronBarcode prend également en charge l'intégration avec Crystal Reports et d'autres outils de reporting nécessitant la génération de codes-barres intégrés. Pour le développement d'applications .NET MAUI et Android, le SDK du lecteur de codes-barres assure une lecture multiplateforme des codes-barres sans nécessiter de SDK de caméra spécifiques à la plateforme : il suffit de transmettre un fichier image capturé par la caméra de l'appareil au lecteur de codes-barres. Le tutoriel sur le lecteur de codes-barres .NET MAUI couvre en détail ce flux de travail .NET MAUI , y compris les autorisations Android et un exemple de code pour la numérisation mobile.

Où aller à partir d'ici

IronBarcode offre aux développeurs .NET une bibliothèque de codes-barres complète pour les projets au niveau SDK, avec génération, lecture, numérisation par lots et exportation incluses, sans la complexité de la gestion de plusieurs packages. La dernière version ajoute le prétraitement d'images basé sur l'apprentissage automatique et la méthode ReadPdfs pour le traitement par lots de fichiers PDF, repoussant ainsi les limites des capacités d'une bibliothèque unique.

Démarrez un essai gratuit pour tester toutes les fonctionnalités dans votre propre projet, sans filigrane ni restrictions. Lorsque vous serez prêt pour la production, découvrez les options de licence IronBarcode à partir de $799 pour les développeurs individuels — avec un support gratuit de l'équipe d'ingénierie d'Iron Software inclus.

Commencez avec IronBarcode maintenant.
green arrow pointer

Questions Fréquemment Posées

À quoi sert IronBarcode dans les projets C# ?

IronBarcode est une bibliothèque .NET qui simplifie les opérations de codes-barres en permettant aux développeurs de générer, lire et scanner divers types de codes-barres dans les projets C#, éliminant le besoin de multiples bibliothèques.

IronBarcode peut-il gérer plusieurs types de codes-barres ?

Oui, IronBarcode prend en charge une large gamme de types de codes-barres, y compris les codes-barres linéaires et les QR codes, assurant la compatibilité à travers différentes applications.

Comment IronBarcode améliore-t-il le scan de codes-barres en C# ?

IronBarcode améliore le scan de codes-barres en fournissant une fonctionnalité robuste pour scanner plusieurs codes-barres à partir d'images et de fichiers PDF imparfaits, améliorant ainsi la précision et l'efficacité.

Un exemple de code est-il disponible pour utiliser IronBarcode ?

Oui, un exemple de code est inclus pour aider les développeurs à intégrer rapidement les fonctionnalités de génération et de scan de codes-barres dans leurs projets C# en utilisant IronBarcode.

Pourquoi choisir IronBarcode plutôt que des bibliothèques séparées pour les opérations de codes-barres ?

IronBarcode regroupe la génération, la lecture et le scan de codes-barres dans une seule bibliothèque, réduisant ainsi la complexité et les problèmes de compatibilité associés à l'utilisation de multiples bibliothèques.

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