Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

DevExpress Barcode vs IronBarcode : Comparaison de la bibliothèque de codes-barres C#

Mescius ComponentOne C1BarCodevs IronBarcode

Le contrôle de code-barres MESCIUS ComponentOne (anciennement GrapeCity, rebrandé en 2023) génère des codes-barres à l'intérieur de Windows Forms, WPF, WinUI, Blazor, et des applications ASP.NET Core MVC. Il remplit parfaitement ces fonctions : l'API est claire, la qualité de la sortie est solide et il s'intègre naturellement au concepteur WinForms. Mais son champ d'action est limité. Il ne peut pas lire les codes-barres. Les éditions WinForms et WPF fonctionnent sur un framework cible uniquement Windows. Et ce n'est pas un produit autonome — il est livré dans le cadre de ComponentOne Studio Enterprise, un abonnement de 1 299 $/développeur/an qui comprend plus de 100 contrôles d'interface utilisateur. Si vous évaluez les options de codes-barres pour un projet .NET et que vous avez trouvé ComponentOne dans une liste comparative, cet article explique ce que cela signifie concrètement.

Comprendre le code-barres C1

C1BarCode est un contrôle visuel. Le flux de travail de génération crée une instance, définit des propriétés, et appelle GetImage() pour récupérer un System.Drawing.Image :

// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;

using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne C1BarCode
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

// License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.Code128;
barcode.Text = "ITEM-12345";
barcode.BarHeight = 100;
barcode.ModuleSize = 2;
barcode.ShowText = true;
barcode.CaptionPosition = CaptionPosition.Below;

using var image = barcode.GetImage();
image.Save("barcode.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.Barcode
Imports C1.BarCode
Imports System.Drawing
Imports System.Drawing.Imaging

' License must be set before first use
C1.C1License.Key = "YOUR-COMPONENTONE-KEY"

Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.Code128
barcode.Text = "ITEM-12345"
barcode.BarHeight = 100
barcode.ModuleSize = 2
barcode.ShowText = True
barcode.CaptionPosition = CaptionPosition.Below

Using image As Image = barcode.GetImage()
    image.Save("barcode.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

L'API de définition des propriétés est familière aux développeurs WinForms — elle correspond directement à l'interface du concepteur. CodeType, BarHeight, ModuleSize, ShowText, et CaptionPosition sont toutes des propriétés visibles par le concepteur qui fonctionnent de manière identique dans le code.

C1BarCode prend en charge 38 symbologies couvrant les formats 1D et 2D courants : Code 39, Code 128, EAN-8, EAN-13, UPC-A, UPC-E, ITF, QR Code, PDF417 et DataMatrix entre autres. Pour la génération de codes-barres, il couvre les cas d'utilisation courants.

API de lecture inexistante

Il ne s'agit pas d'une lacune que peut combler une option de configuration. Il n'y a pas de classe C1BarCodeReader. Il n'y a pas de méthode Decode() sur C1BarCode. Le système de contrôle des codes-barres de ComponentOne est conçu pour la génération uniquement.

Si votre application a besoin de scanner des codes-barres à partir d'images téléchargées, de vérifier des étiquettes imprimées, de traiter des documents contenant des codes intégrés ou d'extraire des données de codes QR dans une API Web, rien de tout cela n'est possible avec C1BarCode. Il vous faudrait une bibliothèque distincte pour la lecture, ce qui soulève la question de savoir pourquoi payer pour un composant de génération de codes-barres uniquement au sein d'une Suite Enterprise de plus de 100 contrôles alors que des bibliothèques de codes-barres autonomes couvrent les deux opérations.

L'absence d'une API de lecture n'est pas inhabituelle pour les contrôles de code-barres WinForms conçus pour l'impression. Ce qui en fait un point de décision, c'est l'évolution des exigences — et les exigences en matière de codes-barres évoluent presque toujours.

Contrainte Windows uniquement

Les éditions WinForms et WPF de C1BarCode nécessitent une configuration de framework cible spécifique à Windows :


<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>

<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
XML

Le moniker du framework cible net8.0-windows et UseWindowsForms ne sont pas des préférences optionnelles. C1.Win.BarCode dépend de types System.Windows.FormsUserControl, PaintEventArgs, Graphics — qui existent uniquement sur Windows. Supprimer net8.0-windows casse la construction. ComponentOne livre des éditions Blazor et ASP.NET Core MVC du contrôle de code-barres qui ciblent les TFM multiplateformes, mais les packages WinForms et WPF sont liés à Windows.

En revanche, Code-barres IronBarcode cible net8.0 (ou tout TFM pris en charge) sans restrictions de plateforme :


<TargetFramework>net8.0</TargetFramework>

<TargetFramework>net8.0</TargetFramework>
XML

Cela a son importance dans plusieurs situations pratiques :

  • Azure App Service sur Linux : plan par défaut pour les nouveaux déploiements d'App Service. net8.0-windows ne peut pas le cibler.
  • Conteneurs Docker : les conteneurs Linux sont la norme. Un conteneur Windows est plus volumineux, coûte plus cher et n'est pas disponible dans de nombreux niveaux de cloud.
  • API Web ASP.NET Core : Un point de terminaison de génération de codes-barres qui ne peut être déployé que sur Windows constitue une contrainte de déploiement que l'équipe devra éventuellement supprimer.
  • Azure Functions : le plan de consommation s'exécute sous Linux. Une fonction générant un code-barres avec un objectif net8.0-windows ne peut pas être déployée sur le plan de consommation.
  • Développement sous macOS : Les développeurs sur macOS ne peuvent pas exécuter un projet net8.0-windows localement, même pour tester la logique de génération.

La contrainte de plateforme ne pose pas de problème si votre application est un outil de bureau WinForms qui ne fonctionnera que sous Windows. Cela devient problématique dès lors que les exigences de déploiement incluent un environnement Linux ou cloud.

Regroupement de Suite

Le contrôle C1BarCode est vendu dans le cadre de ComponentOne Studio Enterprise, qui comprend la suite complète de contrôles ComponentOne pour WinForms, WPF, Blazor, et ASP.NET. Le prix pour ComponentOne Studio Enterprise est de 1 299 $ par développeur par an (abonnement); les éditions monoplateformes (WinForms ou WPF) sont de 799 $ par développeur par an.

Cette Suite comprend plus de 100 composants : grilles, graphiques, planificateurs, contrôles de saisie, concepteurs de rapports, contrôles de carte, jauges, et bien plus encore. Si vous construisez une application lourde en données et avez besoin de nombreux de ces contrôles, le prix de la suite peut avoir du sens. Si vous avez besoin de génération de codes-barres et êtes arrivé à ComponentOne parce qu'il est apparu dans une recherche, vous achetez une suite d'interface utilisateur d'entreprise principalement pour un seul contrôle.

Le package NuGet est C1.Win.BarCode pour WinForms (avec C1.WPF.BarCode, C1.WinUI.BarCode, et C1.Blazor.BarCode pour d'autres plateformes) et est licencié via l'abonnement à ComponentOne Studio. Pour les développeurs désirant une fonctionnalité de code-barres sans la suite complète, il n'y a pas de niveau de licence de code-barres uniquement.

La structure de prix d'IronBarcode est différente : c'est une bibliothèque de code-barres autonome avec une licence perpétuelle démarrant à 749 $ pour un seul développeur (Lite), 1 499 $ pour trois (Plus), 2 999 $ pour dix (Professional), et 5 999 $ pour un nombre illimité de développeurs. Il n'y a pas de contrôle de grille, pas de bibliothèque de graphiques, pas de concepteur de rapports — seulement la fonctionnalité de code-barres que vous recherchez.

Personnalisation du code QR

Les deux bibliothèques prennent en charge la génération de codes QR avec des options de personnalisation. Le style de l'API diffère sensiblement.

Approche par définition de propriété ComponentOne :

// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;

using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
// ComponentOne — QR code with error correction and color
using C1.Win.Barcode;
using C1.BarCode;
using System.Drawing;

C1.C1License.Key = "YOUR-COMPONENTONE-KEY";

var barcode = new C1BarCode();
barcode.CodeType = CodeType.QRCode;
barcode.Text = "https://example.com/product/4821";
barcode.QRCodeVersion = QRCodeVersion.Version5;
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High;
barcode.QRCodeModel = QRCodeModel.Model2;
barcode.ForeColor = Color.DarkBlue;
barcode.BackColor = Color.White;
barcode.ModuleSize = 4;

using var image = barcode.GetImage();
image.Save("product-qr.png", System.Drawing.Imaging.ImageFormat.Png);
Imports C1.Win.Barcode
Imports C1.BarCode
Imports System.Drawing
Imports System.Drawing.Imaging

C1.C1License.Key = "YOUR-COMPONENTONE-KEY"

Dim barcode As New C1BarCode()
barcode.CodeType = CodeType.QRCode
barcode.Text = "https://example.com/product/4821"
barcode.QRCodeVersion = QRCodeVersion.Version5
barcode.QRCodeErrorCorrectionLevel = QRCodeErrorCorrectionLevel.High
barcode.QRCodeModel = QRCodeModel.Model2
barcode.ForeColor = Color.DarkBlue
barcode.BackColor = Color.White
barcode.ModuleSize = 4

Using image As Image = barcode.GetImage()
    image.Save("product-qr.png", ImageFormat.Png)
End Using
$vbLabelText   $csharpLabel

Chaîne de caractères fluide IronBarcode :

// Code-barres IronBarcode — QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("product-qr.png");
// Code-barres IronBarcode — QR code with error correction and color
// NuGet: dotnet add package IronBarcode
using IronBarCode;
using System.Drawing;

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest)
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("product-qr.png");
Imports IronBarCode
Imports System.Drawing

' Code-barres IronBarcode — QR code with error correction and color
' NuGet: dotnet add package IronBarcode

QRCodeWriter.CreateQrCode(
        "https://example.com/product/4821",
        300,
        QRCodeWriter.QrErrorCorrectionLevel.Highest) _
    .ChangeBarCodeColor(Color.DarkBlue) _
    .SaveAsPng("product-qr.png")
$vbLabelText   $csharpLabel

L'approche ComponentOne nécessite l'instanciation d'un objet C1BarCode et la définition de plusieurs propriétés avant d'appeler GetImage(). L'QRCodeWriter d'IronBarcode utilise une chaîne fluide — chaque opération renvoie l'objet code-barres, et vous appelez .SaveAsPng() à la fin. Il n'y a pas d'instance à gérer.

IronBarcode prend également en charge l'intégration de logos dans les codes QR, contrairement à C1BarCode :

// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("branded-qr.png");
// QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500)
    .AddBrandLogo("company-logo.png")
    .ChangeBarCodeColor(Color.DarkBlue)
    .SaveAsPng("branded-qr.png");
' QR code with embedded brand logo
QRCodeWriter.CreateQrCode("https://example.com/track/8821", 500) _
    .AddBrandLogo("company-logo.png") _
    .ChangeBarCodeColor(Color.DarkBlue) _
    .SaveAsPng("branded-qr.png")
$vbLabelText   $csharpLabel

Comprendre IronBarcode

IronBarcode est une bibliothèque .NET autonome de gestion des codes-barres, couvrant la génération et la lecture. Il s'installe à partir de NuGet (dotnet add package IronBarcode), cible tout TFM .NET pris en charge sans restrictions de plateforme, et fonctionne sur Windows, Linux, macOS, Docker, Azure, et AWS Lambda.

La face lecture prend en charge nativement les documents PDF :

// Read barcodes from a PDF — no image extraction needed
using IronBarCode;

var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
// Read barcodes from a PDF — no image extraction needed
using IronBarCode;

var results = BarcodeReader.Read("invoice.pdf");
foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}");
}
Imports IronBarCode

' Read barcodes from a PDF — no image extraction needed
Dim results = BarcodeReader.Read("invoice.pdf")
For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber}: {barcode.Format} — {barcode.Value}")
Next
$vbLabelText   $csharpLabel

Pour les scénarios à haut débit, BarcodeReaderOptions contrôle le compromis entre la vitesse et la précision, ainsi que la détection multi-code-barres :

// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};

var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
// Multi-barcode read with performance options
using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode
};

var results = BarcodeReader.Read("warehouse-manifest.jpg", options);
Imports IronBarCode

' Multi-barcode read with performance options
Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.Code128 Or BarcodeEncoding.QRCode
}

Dim results = BarcodeReader.Read("warehouse-manifest.jpg", options)
$vbLabelText   $csharpLabel

La génération couvre les formats standard avec une API statique cohérente :

// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

// génération de code QR to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();
// Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128)
    .SaveAsPng("shipping-label.png");

// génération de code QR to byte array (for HTTP response)
byte[] qrBytes = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400)
    .ToPngBinaryData();
' Code 128 generation to file
BarcodeWriter.CreateBarcode("SHIP-20240312-7834", BarcodeEncoding.Code128) _
    .SaveAsPng("shipping-label.png")

' génération de code QR to byte array (for HTTP response)
Dim qrBytes As Byte() = QRCodeWriter.CreateQrCode("https://example.com/order/7734", 400) _
    .ToPngBinaryData()
$vbLabelText   $csharpLabel

Plateformes prises en charge : Windows, Linux, macOS, Docker, Azure (App Service et Functions), AWS Lambda. Versions .NET prises en charge : .NET Framework 4.6.2+, .NET Core 3.1+, et .NET 5/6/7/8.

Comparaison des fonctionnalités

Fonction Mescius ComponentOne C1BarCode Code-barres IronBarcode
génération de codes-barres Oui Oui
Lecture de codes-barres Non Oui
génération de code QR Oui Oui
Intégration de logo QR Non Oui
Saisie PDF pour la lecture N/A (pas de lecture) Oui (natif)
Cible de plateforme .NET (éditions WinForms/WPF) net8.0-windows Tout TFM (net8.0, etc.)
UseWindowsForms requis (édition WinForms) Oui Non
Déploiement Linux / Docker Éditions Blazor/ASP.NET MVC uniquement Oui
Déploiement macOS Éditions Blazor/ASP.NET MVC uniquement Oui
Azure Functions (Linux) Éditions Blazor/ASP.NET MVC uniquement Oui
Côté serveur ASP.NET Core Édition ASP.NET Core MVC Oui
package NuGet autonome Packages sous licence suite Oui
Tarification autonome N/A À partir de 749 $ perpétuel (Lite)
Tarifs des Suite 1 299 $/développeur/an Enterprise ; 799 $/développeur/an mono-plateforme N/A
API de génération Fluent Non (créateur de propriété) Oui
BarcodeReader.Read() Non Oui
BarcodeWriter.CreateBarcode() Non Oui
QRCodeWriter.CreateQrCode() Non Oui
Versions .NET prises en charge .NET 6+ (Windows for WinForms/WPF) .NET Framework 4.6.2+, .NET Core 3.1+, .NET 5–8
Option de licence perpétuelle Non (abonnement) Oui

Référence de mappage d'API

Pour les équipes migrant de C1BarCode vers IronBarcode, les équivalents directs suivants s'appliquent :

Code-barres ComponentOne C1 Code-barres IronBarcode
C1.C1License.Key = "..." IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
new C1BarCode() Statique — aucune instance nécessaire
barcode.CodeType = CodeType.Code128 BarcodeEncoding.Code128 (passé en tant que paramètre)
barcode.Text = "data" Premier argument de BarcodeWriter.CreateBarcode()
barcode.BarHeight = 100 .ResizeTo(width, 100) sur le rédacteur de code-barres
barcode.ModuleSize = 2 .ResizeTo() contrôle la taille en pixels
barcode.ForeColor = Color.DarkBlue .ChangeBarCodeColor(Color.DarkBlue)
barcode.BackColor = Color.White .ChangeBackgroundColor(Color.White)
barcode.GetImage() .SaveAsPng() / .ToPngBinaryData()
barcode.QRCodeErrorCorrectionLevel énumération QRCodeWriter.QrErrorCorrectionLevel
barcode.QRCodeVersion Automatique (ou paramètre de version)
API de lecture indisponible BarcodeReader.Read(path)
net8.0-windows requis net8.0 (ou tout TFM)
UseWindowsForms = true requis Non requis

Quand les équipes changent

Le besoin de lecture se fait sentir. C'est le déclencheur le plus fréquent. Une équipe conçoit un système de génération d'étiquettes à code-barres avec C1BarCode, puis reçoit la demande de vérifier les scans, de traiter les documents d'expédition entrants ou de décoder les codes QR à partir d'images téléchargées. C1BarCode ne peut pas vous aider. Vous avez deux options : ajouter une seconde bibliothèque de codes-barres pour la lecture, ou remplacer C1BarCode par une bibliothèque qui gère les deux.

Déploiement sous Linux ou Docker. Une application de bureau WinForms distribuée sur les postes de travail Windows n'est pas soumise à cette contrainte. Une API ASP.NET Core générant des images de codes-barres, notamment si elle doit s'exécuter dans un conteneur Linux ou être déployée sur Azure App Service sous Linux. Le framework cible net8.0-windows bloque immédiatement ces options de déploiement.

Architecture de microservices ou sans serveur. Azure Functions, AWS Lambda et les microservices conteneurisés sont conçus pour Linux en priorité. Un service de génération de codes-barres qui ne peut pas être déployé sur Linux ne constitue pas un microservice viable.

Coût de l'abonnement à la Suite en fonction des besoins. Les équipes qui paient pour ComponentOne Studio Enterprise et utilisent déjà ses grilles, graphiques et autres contrôles ont déjà justifié leur abonnement. Les équipes qui se sont abonnées principalement ou exclusivement pour la génération de codes-barres paient pour plus de 100 contrôles qu'elles n'utilisent pas. Le coût de l'abonnement par développeur augmente avec la taille de l'équipe.

Licence perpétuelle privilégiée. ComponentOne Studio est disponible uniquement par abonnement. Il n'existe pas d'option de licence perpétuelle. Pour les équipes qui préfèrent posséder le logiciel qu'elles expédient — en particulier pour des raisons de conformité ou de maintenance à long terme — la licence perpétuelle d'IronBarcode (dès 749 $ Lite) est structurellement différente.

Conclusion

C1BarCode génère des codes-barres de manière propre dans un contexte WinForms. C'est véritablement ce qu'il fait bien, et pour une application de bureau WinForms qui n'a besoin que de générer des étiquettes sous Windows, c'est un choix fonctionnel au sein de la Suite ComponentOne.

Le champ d'application s'arrête là. Aucune lecture requise, déploiement uniquement sous Windows, aucun package autonome, licence par abonnement. Lorsque les exigences d'un projet dépassent la génération WinForms sous Windows (exigence de lecture, cible de déploiement Linux, API web, conteneur Docker, fonction cloud), C1BarCode ne peut pas les prendre en charge. Code-barres IronBarcode couvre la génération et la lecture, fonctionne sur toutes les plateformes prises en charge par .NET et est disponible en tant que package autonome sans abonnement à une Suite Enterprise de 100 contrôles.

Questions Fréquemment Posées

Qu'est-ce que BarCode ?

BarCode est une bibliothèque de codes-barres .NET permettant de générer et de lire des codes-barres dans des applications C#. C'est l'une des nombreuses alternatives que les développeurs évaluent lorsqu'ils choisissent une solution de code-barres pour les projets .NET.

Quelles sont les principales différences entre BarCode GrapeCity et IronBarcode ?

IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, tandis que GrapeCity Barcode nécessite généralement la création et la configuration d'une instance avant utilisation. IronBarcode offre également une prise en charge native du format PDF, une détection automatique du format et une licence à clé unique pour tous les environnements.

IronBarcode est-il plus facile à licencier que GrapeCity Barcode ?

IronBarcode utilise une clé de licence unique couvrant à la fois les déploiements de développement et de production. Cela simplifie les pipelines CI/CD et les configurations Docker par rapport aux systèmes de licence qui séparent les clés SDK des clés d'exécution.

IronBarcode prend-il en charge tous les formats de codes-barres que BarCode GrapeCity prend en charge ?

IronBarcode prend en charge plus de 30 symbologies de codes-barres, notamment QR Code, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1, et bien d'autres encore. L'auto-détection du format signifie qu'aucune énumération explicite du format n'est nécessaire.

IronBarcode prend-il en charge la lecture de codes-barres PDF en mode natif ?

Oui. IronBarcode lit les codes-barres directement à partir de fichiers PDF en utilisant BarcodeReader.Read("document.pdf") sans nécessiter de bibliothèque de rendu PDF séparée. Les résultats par page comprennent le numéro de page, le format du code-barres, la valeur et le score de confiance.

Comment IronBarcode gère-t-il le traitement par lots par rapport à GrapeCity Barcode ?

Les méthodes statiques d'IronBarcode sont sans état et naturellement à l'abri des threads, ce qui permet d'utiliser directement Parallel.ForEach sans gestion d'instance par thread. Il n'y a pas de plafond de débit, quel que soit le niveau de prix.

Quelles versions de .NET sont prises en charge par IronBarcode ?

IronBarcode prend en charge .NET Framework 4.6.2+, .NET Core 3.1 et .NET 5, 6, 7, 8 et 9 dans un seul package NuGet. Les plates-formes visées sont Windows x64/x86, Linux x64 et macOS x64/ARM.

Comment installer IronBarcode for .NET dans un projet .NET ?

Installez IronBarcode via NuGet : exécutez "Install-Package IronBarCode" dans la console du Package Manager, ou "dotnet add package IronBarCode" dans le CLI. Aucun installateur SDK ou fichier d'exécution supplémentaire n'est nécessaire.

Puis-je évaluer IronBarcode avant de l'acheter, contrairement à GrapeCity ?

Oui. Le mode d'essai d'IronBarcode renvoie des valeurs de code-barres décodées complètes - seules les images de sortie générées reçoivent un filigrane. Vous pouvez comparer la précision de lecture sur vos propres documents avant de vous engager dans un achat.

Quelle est la différence de prix entre BarCode GrapeCity et IronBarcode ?

IronBarcode est proposé à partir de 749 dollars pour une licence perpétuelle pour un seul développeur couvrant le développement et la production. Les détails des prix et les options de volume sont disponibles sur la page de licence d'IronBarcode. Il n'est pas nécessaire de disposer d'une licence d'exécution distincte.

Est-il simple de migrer de GrapeCity Barcode vers IronBarcode ?

La migration de BarCode GrapeCity vers IronBarcode implique principalement le remplacement des appels d'API basés sur les instances par les méthodes statiques d'IronBarcode, la suppression du boilerplate de licence et la mise à jour des noms des propriétés des résultats. La plupart des migrations impliquent une réduction du code plutôt qu'un ajout.

IronBarcode génère-t-il des codes QR avec des logos ?

Oui. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") incorpore une image de marque dans un code QR de manière native avec une correction d'erreur configurable. Les codes QR colorés sont également pris en charge via ChangeBarCodeColor().

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

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