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 de SDK C# pour les codes-barres commencent avec le même casse-tête : assembler des bibliothèques séparées pour la génération, la lecture et l'exportation, puis lutter avec la compatibilité entre les types de codes-barres et les plateformes. IronBarcode élimine complètement cette friction. C'est une bibliothèque .NET unique qui gère toutes les opérations de code-barres dont les développeurs ont généralement besoin d'un SDK dédié de scanner de code-barres, de la création de codes-barres linéaires et de QR codes à la numérisation de plusieurs codes-barres à partir d'images imparfaites et de fichiers PDF.

Dans cet article, nous vous guiderons à travers les capacités principales qui font d'IronBarcode une solution tout-en-un pour les projets de SDK de codes-barres : la génération d'images de codes-barres, la lecture de données de codes-barres à partir de fichiers, et la configuration des paramètres avancés de numérisation pour une précision de qualité de production. 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 code-barres dans les projets .NET ?

Un SDK de scanner de code-barres performant doit couvrir trois opérations essentielles : générer des codes-barres, lire les données des codes-barres à partir d'images et de documents, et gérer les problèmes de qualité de numérisation du monde réel. Les meilleures options de SDK de lecteur de codes-barres prennent également en charge une large gamme de symbologies sans nécessiter de bibliothèques séparées pour chacune.

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 couverture signifie que les développeurs .NET peuvent traiter tout, des étiquettes UPC-A de détail aux QR codes en entrepôt, en utilisant une seule DLL de code-barres, sans dépendances supplémentaires, sans binaires natifs propres à une 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, avec un support for .NET MAUI et les déploiements d'applications Android. Elle s'intègre également aux outils de rapport comme Crystal Reports pour les scénarios qui nécessitent l'incrustation de génération de codes-barres dans les documents professionnels. Que le projet soit une application console, un scanner mobile .NET MAUI ou un lecteur de code-barres côté serveur traitant des milliers d'images, la même API de SDK de scanner de codes-barres gère tout.

How Can Developers Generate Barcode Images in 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 retourné peut être enregistré en tant que fichier PNG, BMP, JPEG, PDF, HTML ou exporté dans des formats vectoriels comme 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");
$vbLabelText   $csharpLabel

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

Construire un SDK de code-barres C#: Générer, lire et scanner des codes-barres avec une seule bibliothèque : Image 1 - Sortie d'images de code-barres et de QR code

La classe BarcodeWriter accepte les données sous forme de chaîne, tableau d'octets ou flux, offrant ainsi de la flexibilité pour différentes sources de données. L'énumération BarcodeEncoding contrôle la symbologie, passez BarcodeEncoding.QRCode pour un QR code, BarcodeEncoding.UPCA pour les étiquettes de détail UPC-A, ou l'un des formats de codes-barres pris en charge. Pour les QR codes stylisés, la classe dédiée QRCodeWriter prend en charge les niveaux de correction d'erreur et l'incorporation de logo, ce qui la rend simple pour créer des codes de marque.

L'objet GeneratedBarcode fournit également des méthodes pour 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 dans des formats d'images raster (PNG, BMP, JPEG) et vectoriels, ou rendues directement en HTML pour des scénarios d'applications web. Voir les exemples de création de codes-barres pour des options de sortie supplémentaires.

Comment le lecteur de codes-barres fonctionne-t-il sur les fichiers image et PDF ?

La méthode BarcodeReader.Read accepte un chemin de fichier image, un tableau d'octets, un bitmap ou un flux et renvoie une collection BarcodeResults contenant chaque code-barres trouvé dans l'entrée. Chaque BarcodeResult expose la valeur du code-barres, le type de codage, 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}");
}
$vbLabelText   $csharpLabel

Lecture des données de sortie de codes-barres

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

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

Chaque BarcodeResult dans la collection donne accès aux données déchiffrées du code-barres à la fois sous forme de chaîne et de tableau d'octets. Cela est particulièrement utile lors du traitement de 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-barres, permettant aux applications de cartographier où chaque code est apparu dans le fichier image source. Pour le traitement par lots à travers tout un dossier d'images, passez un IEnumerable<string> de chemins de fichiers au lecteur de codes-barres avec le multithreading activé pour une exécution parallèle.

Comment un SDK de scanner de codes-barres peut-il gérer la qualité d'image réelle ?

Les images de codes-barres réelles, issues de caméras d'entrepôt, de captures mobiles, ou de documents numérisés, ne sont rarement parfaites pixellement. La classe BarcodeReaderOptions offre un contrôle fin sur la vitesse de numérisation, les symbologies attendues, les filtres de correction d'image, et le traitement par lots multithreadé pour obtenir une reconnaissance de code-barres très précise même sur des entrées endommagées ou biaisé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} &mdash; {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} &mdash; {barcode.Value}");
}
$vbLabelText   $csharpLabel

Sortie pour la numérisation d'image de code-barres bruyant

Construire un SDK de code-barres C#: Générer, lire et scanner des codes-barres avec une seule bibliothèque : Image 3 - Exemple de sortie pour la numérisation d'une image de code-barres bruyant

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

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

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

IronBarcode couvre les symbologies de codes-barres les plus largement utilisées dans les applications de vente au détail, de logistique, de soins de santé, et d'entreprise. Le tableau suivant résume 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 QR Code, Data Matrix, PDF417, Aztec, MaxiCode
Formats d'images PNG, JPEG, BMP, GIF, TIFF, SVG
Formats de documents PDF (multi-page), 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 comme un paquet NuGet (BarCode) unique ou comme un DLL de code-barres autonome via téléchargement direct. Aucune dépendance SDK native n'est requise, l'ensemble du SDK de scanner de code-barres est livré en tant que code .NET géré. Installez-le dans Visual Studio via le Package Manager NuGet, ou exécutez dotnet add package BarCode depuis la CLI. Pour les scénarios de déploiement qui nécessitent un contrôle au niveau DLL, le téléchargement DLL IronBarcode fournit un paquet ZIP prêt pour une intégration manuelle.

IronBarcode prend également en charge l'intégration Crystal Reports et d'autres outils de rapport lorsque la génération de codes-barres intégrée est nécessaire. Pour le développement d'applications .NET MAUI et Android, le SDK de scanner de codes-barres fournit une lecture de codes-barres multiplateforme sans nécessiter des SDK de caméra propres à une plateforme — il suffit de passer un fichier image capturé par la caméra de l'appareil au lecteur de codes-barres. Le tutoriel de scanner de codes-barres .NET MAUI couvre ce flux de travail .NET MAUI en détail, y compris les autorisations Android et le code exemple pour la numérisation mobile.

Où aller à partir d'ici

IronBarcode donne aux développeurs .NET une bibliothèque de codes-barres complète pour les projets de niveau SDK avec génération, lecture, numérisation par lots, et exportation, tout inclus - sans la complexité de gérer plusieurs paquets. La dernière version ajoute le prétraitement d'image alimenté par ML et la méthode ReadPdfs pour le traitement de PDF par lots, continuant à pousser ce qu'une seule bibliothèque peut faire.

Commencez un essai gratuit pour tester chaque fonctionnalité dans votre propre projet sans filigranes ni restrictions. Lorsque vous êtes prêt pour la production, explorez les options de licence IronBarcode à partir de $799 pour les développeurs individuels — avec un support gratuit de l'équipe d'ingénierie de 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me