Scanbot SDK vs IronBarcode : Comparaison de la bibliothèque BarCode C#
Code-barres Syncfusion vs IronBarcode : Architecture, Licences, et Couverture de Lecture
L'écosystème de codes-barres de Syncfusion génère des codes-barres via des commandes d'interface utilisateur et vend un produit distinct appelé Barcode Reader OPX pour la lecture. Ce produit de lecture utilise ZXing.Net (Apache 2.0) comme décodeur. Les équipes qui ont besoin à la fois de génération et de lecture travaillent donc avec deux produits Syncfusion sous un seul abonnement de suite, et cette séparation influence les compromis architecturaux et de coût décrits ci-dessous.
Comprendre le code-barres Syncfusion
Syncfusion barcode n'est pas une bibliothèque autonome ; c'est un composant de la suite Syncfusion Essential Studio. Le côté génération se présente comme un contrôle UI : SfBarcode pour WinForms et WPF, et SfBarcodeGenerator pour Blazor et MAUI. Ces contrôles affichent un code-barres sur un formulaire lors de l'exécution et sont conçus pour être utilisés au sein de l'écosystème plus large de composants d'interface utilisateur de Syncfusion.
La partie lecture est un produit commercial entièrement distinct. Barcode Reader OPX est une offre distincte de Syncfusion, dotée de sa propre licence, de son propre package NuGet et de sa propre API. Les équipes qui ont besoin à la fois de la génération et de la lecture doivent acheter, maintenir et configurer deux produits au lieu d'un seul.
La licence communautaire Syncfusion offre un niveau gratuit aux organisations éligibles, mais l'éligibilité exige que les quatre conditions suivantes soient vraies simultanément et en permanence :
- Seuil de chiffre d'affaires : Chiffre d'affaires annuel brut de l'entreprise inférieur à 1 000 000 USD (toutes sources de revenus confondues, et pas seulement les logiciels)
- Seuil de développeurs : cinq développeurs ou moins dans l'équipe
- Seuil d'effectifs : Dix employés ou moins au total
- Seuil de capital : Montant total des capitaux externes levés inférieur à 3 000 000 $ sur l'ensemble des levées de fonds.
Les organisations gouvernementales financées par l'impôt ne sont pas éligibles quelle que soit leur taille ; les agences gouvernementales non financées par l'impôt peuvent se qualifier uniquement après avoir signé un accord de licence principale directement avec Syncfusion. Les conditions sont auto-certifiées et doivent rester remplies en continu — franchir tout seuil unique déclenche une obligation de licence commerciale.
L'écosystème de codes-barres Syncfusion présente également les caractéristiques suivantes :
- Architecture de contrôle uniquement pour la génération :
SfBarcodeetSfBarcodeGeneratorn'ont pas d'API de lecture. Il n'existe pas de méthode.Read()ou.Scan()sur toute la surface de contrôle. - Clés de licence spécifiques à la version : les clés de licence Syncfusion sont liées à des plages de versions spécifiques d'Essential Studio. La mise à niveau de la version 24.x à la version 25.x nécessite une nouvelle clé, une mise à jour des secrets dans chaque environnement et un redéploiement pour éviter l'apparition de filigranes d'essai en production.
- Enregistrement de plateforme en plusieurs étapes : Chaque plateforme cible (Blazor, MAUI) nécessite des appels d'enregistrement de service spécifiques à la plateforme en plus de l'appel de licence de base.
- Pas de chemin de génération sans affichage pour Blazor :
SfBarcodeGeneratorest un composant Razor qui se rend dans le navigateur. Il ne possède pas d'API de sortie de fichiers côté serveur. - Pas de sortie PDF : ni le contrôle WinForms ni le contrôle Blazor ne peuvent écrire un code-barres directement dans un fichier PDF.
- Licences incluses dans la suite : Le code-barres Syncfusion est licencié dans le cadre d'Essential Studio plutôt que comme un produit exclusivement code-barres.
- Lecteur OPX basé sur ZXing.Net : Le lecteur de code-barres OPX utilise ZXing.Net (Apache 2.0) comme décodeur. ZXing.Net est également disponible directement via NuGet sous la même licence Apache 2.0.
Architecture de contrôle de génération uniquement
SfBarcode est un contrôle WinForms avec une API basée sur les propriétés : Text, Symbology, BarHeight, NarrowBarWidth, ShowText. L'affichage d'un code-barres sur un formulaire fonctionne comme prévu dans un concepteur WinForms. Générer un fichier de code-barres de manière programmatique nécessite le modèle DrawToBitmap, qui implique de préallouer un Bitmap des bonnes dimensions avant le rendu :
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;
// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;
barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
using Syncfusion.Windows.Forms.Barcode;
using System.Drawing;
using System.Drawing.Imaging;
// Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
var barcode = new SfBarcode();
barcode.Text = "12345678";
barcode.Symbology = BarcodeSymbolType.Code128A;
barcode.BarHeight = 100;
barcode.NarrowBarWidth = 1;
barcode.ShowText = true;
barcode.Width = 400;
barcode.Height = 150;
using var bitmap = new Bitmap(barcode.Width, barcode.Height);
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle);
bitmap.Save("barcode.png", ImageFormat.Png);
Imports Syncfusion.Windows.Forms.Barcode
Imports System.Drawing
Imports System.Drawing.Imaging
' Version-specific key required — changes with every major Essential Studio release
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")
Dim barcode As New SfBarcode()
barcode.Text = "12345678"
barcode.Symbology = BarcodeSymbolType.Code128A
barcode.BarHeight = 100
barcode.NarrowBarWidth = 1
barcode.ShowText = True
barcode.Width = 400
barcode.Height = 150
Using bitmap As New Bitmap(barcode.Width, barcode.Height)
barcode.DrawToBitmap(bitmap, barcode.ClientRectangle)
bitmap.Save("barcode.png", ImageFormat.Png)
End Using
Ce modèle implique le chargement de l'environnement d'exécution Windows Forms dans chaque projet qui l'appelle, y compris les applications console, les services ASP.NET Core et les Azure Functions. La variante Blazor, SfBarcodeGenerator, est un composant Razor et n'a pas du tout de chemin de sortie de fichier côté serveur.
Comprendre IronBarcode
IronBarcode est une bibliothèque de codes-barres .NET conçue pour la génération et la lecture programmatiques sur tous les modèles d'applications .NET . Il est distribué sous la forme d'un package NuGet unique qui couvre à la fois la génération et la lecture dans la même interface API, sans nécessiter de produit secondaire.
La bibliothèque est conçue autour d'un modèle d'API statique : les appelants invoquent des méthodes statiques (BarcodeWriter.CreateBarcode, BarcodeReader.Read, QRCodeWriter.CreateQrCode) et enchaînent directement les méthodes de sortie sur le résultat. Ce modèle fonctionne de manière identique dans les applications de bureau WinForms, les services Web ASP.NET Core , les Azure Functions, les applications console et les conteneurs Docker Linux.
Les principales caractéristiques sont les suivantes
- Génération et lecture unifiées : les deux fonctionnalités se trouvent dans le même package NuGet , sous la même licence, utilisant la même interface API.
- API statique : Aucune instanciation de contrôle, aucune dépendance de runtime UI, aucune indirecte
DrawToBitmap. - Indépendant de la plateforme : le même code et la même clé de licence fonctionnent sous WinForms, Blazor, MAUI, ASP.NET Core, console, Azure Functions et Docker sous Linux.
- Sortie directe de fichier : Les codes-barres peuvent être enregistrés directement en PNG, JPEG, SVG, HTML, PDF et d'autres formats sans allocation
Bitmapintermédiaire. - Support PDF intégré :
SaveAsPdf()est une méthode de sortie de première classe ; La bibliothèque peut également lire nativement les codes-barres des documents PDF. - Détection automatique du format lors de la lecture :
BarcodeReader.Readidentifie automatiquement le format de code-barres sans nécessiter que l'appelant spécifie un type. - Clé unique et stable : la clé de licence ne change pas entre les mises à jour mineures ou les correctifs NuGet au sein d'une version majeure.
- Fonctionnalités des codes QR : Prise en charge des logos de marque intégrés et de la personnalisation des couleurs directement dans l'API de génération.
Comparaison des fonctionnalités
Le tableau suivant résume les principales différences entre Code-barres Syncfusion et IronBarcode:
| Fonction | Code-barres Syncfusion | Code-barres IronBarcode |
|---|---|---|
| génération de codes-barres | Oui — Contrôle d'interface utilisateur (WinForms, WPF, Blazor, MAUI) | Oui — API statique programmable, tous environnements |
| Lecture de codes-barres | Non — nécessite un lecteur de codes-barres OPX séparé. | Oui, même paquet que la génération précédente |
| Sortie de code-barres PDF | Non — nécessite Syncfusion.Pdf séparément | Oui — SaveAsPdf() intégré |
| lecture de codes-barres PDF | Non | Oui — natif |
| génération sans interface graphique / côté serveur | Contrôle UI avec dépendance au runtime WinForms | API native — statique, sans dépendance à l'interface utilisateur |
| Niveau gratuit | Licence communautaire (quatre conditions simultanées) | Essai gratuit de 30 jours (filigrane uniquement) |
| Modèle de licence | Abonnement annuel ( Suite Essential Studio) | Perpétuel à partir de 749 |
Comparaison détaillée des fonctionnalités
| Fonction | Code-barres Syncfusion | Code-barres IronBarcode |
|---|---|---|
| Génération | ||
| Génération WinForms | Oui (SfBarcode) |
Oui |
| Génération WPF | Oui (SfBarcode) |
Oui |
| Génération Blazor | Oui (SfBarcodeGenerator, rendu dans le navigateur) |
Oui (API côté serveur) |
| Génération MAUI | Oui (SfBarcodeGenerator) |
Oui |
| Console / Azure Functions | Nécessite l'environnement d'exécution WinForms | Natif |
| Docker / Linux | Limité | Prise en charge complète |
| Sortie directe de fichier | Via DrawToBitmap + Bitmap.Save |
.SaveAsPng(), .SaveAsPdf(), .SaveAsSvg(), etc. |
| QR avec logo intégré | Non | Oui — .AddBrandLogo() |
| En lisant | ||
| API de lecture dans le package de code-barres | Non | Oui — BarcodeReader.Read() |
| Produit de lecture séparé | Oui — Lecteur de codes-barres OPX (payant) | Pas nécessaire |
| OPX encapsule ZXing .NET (Apache 2.0) | Oui, .NET est gratuit. | N/A |
| lecture de codes-barres PDF | Non | Oui |
| Détection automatique du format | N/A | Oui |
| Détection de plusieurs codes-barres | N/A | Oui |
| Plateforme | ||
| API minimale ASP.NET Core | Prise en charge non optimale | Prise en charge complète |
| Multiplateforme (Linux) | Limité | Prise en charge complète |
| Licence | ||
| Niveau gratuit | Licence communautaire (quatre conditions simultanées) | essai de 30 jours |
| modèle de licence commerciale | Abonnement annuel (Essential Studio) | Perpétuel |
| Prix commercial d'entrée de gamme | Devis personnalisé (abonnement annuel) | À partir de 749 $ perpétuel |
| Étendue de la clé de licence | Spécifique à la version (modifie avec les versions majeures) | Version stable au sein de la version majeure |
| Frais d'inscription à la plateforme | Procédure en plusieurs étapes (Enregistrer la licence + Ajouter SyncfusionBlazor + Configurer SyncfusionCore) | Ligne unique |
| Prise en charge des fichiers PDF | ||
| Sortie PDF | Non — nécessite Syncfusion.Pdf comme package supplémentaire | Oui — intégré |
| Lecture de PDF | Non | Oui — intégré |
| Formats | ||
| Formats 1D | Code 128, Code 39, EAN-8/13, UPC-A/E, Codabar et autres | Tous les formats Syncfusion, Plus PDF417, Aztec, MaxiCode, GS1, USPS IMb et plus de 50 autres. |
| Formats 2D | Code QR, DataMatrix | Code QR, DataMatrix, PDF417, Micro PDF417, Aztec, MaxiCode |
Architecture de génération
La différence architecturale fondamentale entre Code-barres Syncfusion et Code-barres IronBarcode réside dans la distinction entre un contrôle de rendu d'interface utilisateur et une bibliothèque de génération de fichiers programmatique.
Approche de Syncfusion
SfBarcode est un contrôle WinForms. Son rôle est d'afficher un code-barres dans la mise en page visuelle d'un formulaire. Pour produire un fichier à partir de celui-ci, le développeur doit préallouer un Bitmap correspondant à la taille de sortie souhaitée, appeler DrawToBitmap, puis appeler Bitmap.Save. Chaque étape nécessite l'environnement d'exécution Windows Forms.
SfBarcodeGenerator pour Blazor est un composant Razor qui se rend dans le navigateur par le biais de la couche JavaScript Blazor de Syncfusion. Il n'y a pas d'API côté serveur sur SfBarcodeGenerator. La génération d'un code-barres téléchargeable à partir d'une application Blazor nécessite l'interopérabilité JavaScript et des déclencheurs de téléchargement du navigateur plutôt qu'un appel à l'API serveur.
Pour les applications MAUI, SfBarcodeGenerator rend les codes-barres dans le système de mise en page MAUI. La génération d'un code-barres sous forme de fichier pour transmission ou impression nécessite des étapes de traitement supplémentaires non prises en charge par le système de contrôle lui-même.
Approche IronBarcode
IronBarcode utilise une API statique et chaînable qui produit directement des fichiers de sortie. Le même modèle d'appel fonctionne dans n'importe quel modèle d'application .NET sans modification :
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
// NuGet: dotnet add package IronBarcode
using IronBarCode;
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPng("barcode.png");
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.ResizeTo(400, 150) _
.SaveAsPng("barcode.png")
La documentation relative à la génération de codes-barres 1D couvre toutes les symbologies et options de sortie prises en charge. Pas d'instanciation de contrôle, pas de Bitmap préalloué, et aucune dépendance de runtime Windows Forms.
Lecture de codes-barres
Approche de Syncfusion
SfBarcode et SfBarcodeGenerator n'ont pas de capacité de lecture par conception. L'écosystème Syncfusion comble cette lacune grâce à Barcode Reader OPX, un produit commercial distinct disposant de sa propre licence et de son propre processus d'achat.
Le lecteur de codes-barres OPX utilise ZXing .NET en interne. ZXing .NET est une bibliothèque de lecture de codes-barres open source publiée sous la licence Apache 2.0. Apache 2.0 est une licence permissive qui autorise une utilisation commerciale sans restriction. Tout développeur peut installer ZXing .NET directement :
dotnet add package ZXing.Net
dotnet add package ZXing.Net
Le lecteur de code-barres OPX est licencié séparément des contrôles de code-barres Syncfusion. Un flux de travail de code-barres Syncfusion complet couvrant à la fois la génération et la lecture nécessite donc deux produits Syncfusion, deux accords de licence et deux surfaces API distinctes — avec le produit de lecture structuré sur un décodeur open-source disponible gratuitement.
Approche IronBarcode
La lecture des codes-barres est incluse dans le même package NuGet que leur génération. Aucun produit ou licence secondaire n'est requis :
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
using IronBarCode;
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
{
Console.WriteLine($"Format: {result.Format}");
Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode
Dim results = BarcodeReader.Read("barcode.png")
For Each result In results
Console.WriteLine($"Format: {result.Format}")
Console.WriteLine($"Value: {result.Value}")
Next
La documentation sur la lecture des codes-barres couvre la détection de plusieurs codes-barres, le calcul du score de confiance, la lecture à partir de tableaux d'octets et le réglage du rapport vitesse/précision. La lecture des documents PDF est également native, sans nécessiter de bibliothèque PDF séparée.
Architecture des licences
Approche de Syncfusion
La licence communautaire Syncfusion offre un accès gratuit, mais impose quatre conditions d'éligibilité simultanées : un chiffre d'affaires annuel brut inférieur à 1 000 000 $, cinq développeurs ou moins, dix employés ou moins et un capital extérieur total inférieur à 3 000 000 $. Ces quatre conditions doivent être remplies en permanence. Les organisations gouvernementales financées par l'impôt ne sont pas éligibles. Franchir une condition crée une obligation immédiate de licence commerciale, et la transition de la Licence Communautaire à une licence commerciale passe de 0 $ à un abonnement annuel par développeur Essential Studio dont le montant est donné par les ventes de Syncfusion sur devis.
Au-delà des critères d'éligibilité, les clés de licence Syncfusion sont spécifiques à chaque version. Une clé émise pour Essential Studio 24.x n'est plus valide après la mise à niveau vers la version 25.x. Chaque mise à jour majeure de NuGet nécessite l'obtention d'une nouvelle clé depuis le portail de compte, la mise à jour des secrets d'environnement et un redéploiement afin d'éviter l'apparition de filigranes d'essai dans les résultats de production.
L'inscription à la plateforme ajoute des étapes supplémentaires. Une application Blazor nécessite trois entrées de configuration distinctes :
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();
// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
// Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY");
// Step 2: Service registration in Program.cs
builder.Services.AddSyncfusionBlazor();
// Step 3: Namespace imports in _Imports.razor
// @using Syncfusion.Blazor
// @using Syncfusion.Blazor.BarcodeGenerator
' Step 1: License registration
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-VERSION-SPECIFIC-KEY")
' Step 2: Service registration in Program.vb
builder.Services.AddSyncfusionBlazor()
' Step 3: Namespace imports in _Imports.razor
' @Imports Syncfusion.Blazor
' @Imports Syncfusion.Blazor.BarcodeGenerator
Les applications MAUI nécessitent une quatrième étape : builder.ConfigureSyncfusionCore().
Approche IronBarcode
L'activation de la licence Code-barres IronBarcode est une attribution unique, identique sur toutes les plateformes et tous les modèles d'application :
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
La page relative aux licences IronBarcode décrit le modèle de licence perpétuelle. Le guide de configuration des clés de licence couvre les modèles de variables d'environnement pour les déploiements CI/CD et Docker. La clé ne change pas entre les mises à jour mineures et les correctifs au sein d'une même version majeure, et aucun enregistrement de service spécifique à la plateforme n'est requis.
Sortie PDF
Approche de Syncfusion
Les commandes de codes-barres Syncfusion ne peuvent pas générer de sortie PDF. Intégrer un code-barres dans un document PDF en utilisant les outils Syncfusion nécessite de combiner le package de contrôle de code-barres avec Syncfusion.Pdf, de générer le code-barres sous forme de Bitmap via DrawToBitmap, puis d'insérer cette image en tant qu'élément d'image dans le modèle d'objet document PDF. Ce flux de travail implique deux produits Syncfusion distincts, deux packages NuGet et un pipeline de rendu en plusieurs étapes.
La lecture des codes-barres à partir de documents PDF existants n'est prise en charge ni par le contrôle des codes-barres ni par Barcode Reader OPX.
Approche IronBarcode
Le format PDF est un format de sortie de premier ordre dans IronBarcode. Aucune bibliothèque secondaire n'est requise :
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128)
.ResizeTo(400, 150)
.SaveAsPdf("barcode.pdf");
BarcodeWriter.CreateBarcode("12345678", BarcodeEncoding.Code128) _
.ResizeTo(400, 150) _
.SaveAsPdf("barcode.pdf")
La bibliothèque lit également les codes-barres directement à partir des documents PDF :
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
var pdfResults = BarcodeReader.Read("shipping-manifest.pdf");
foreach (var result in pdfResults)
{
Console.WriteLine($"Page {result.PageNumber}: {result.Value}");
}
Dim pdfResults = BarcodeReader.Read("shipping-manifest.pdf")
For Each result In pdfResults
Console.WriteLine($"Page {result.PageNumber}: {result.Value}")
Next
Le guide de génération de PDF avec codes-barres traite des sorties multipages et de l'intégration de codes-barres au sein d'autres contenus PDF.
Référence de mappage d'API
| Code-barres Syncfusion | Équivalent Code-barres IronBarcode |
|---|---|
SyncfusionLicenseProvider.RegisterLicense("KEY") |
IronBarCode.License.LicenseKey = "key" |
builder.Services.AddSyncfusionBlazor() |
Non requis |
builder.ConfigureSyncfusionCore() |
Non requis |
new SfBarcode() |
BarcodeWriter.CreateBarcode() (statique) |
barcode.Text = "value" |
Premier paramètre de CreateBarcode() |
barcode.Symbology = BarcodeSymbolType.Code128A |
BarcodeEncoding.Code128 |
barcode.Symbology = BarcodeSymbolType.QRBarcode |
QRCodeWriter.CreateQrCode() |
barcode.BarHeight = 100 |
.ResizeTo(width, 100) |
barcode.ShowText = true |
Texte lisible par l'homme rendu par défaut ; basculer via les options de l'écrivain |
barcode.DrawToBitmap(bitmap, rect) |
.SaveAsPng(path) |
Manuel Bitmap → MemoryStream |
.ToPngBinaryData() |
<SfBarcodeGenerator Type="BarcodeType.Code128" Value="..."> |
BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128) côté serveur |
<SfQRCodeGenerator Value="..."> |
QRCodeWriter.CreateQrCode(value, size) côté serveur |
BarcodeType.Code128 (énumération Blazor) |
BarcodeEncoding.Code128 |
| Lecteur de codes-barres OPX (encapsule ZXing .NET) | BarcodeReader.Read(path) — natif, sans wrapper |
| Aucune API de lecture dans les contrôles de codes-barres | BarcodeReader.Read(path) |
| Aucune sortie PDF | BarcodeWriter.CreateBarcode(...).SaveAsPdf(path) |
Quand les équipes envisagent de passer de Code-barres Syncfusion à IronBarcode
Exigences de lecture des codes-barres
Une équipe travaillant entièrement avec WinForms ou Blazor peut commencer avec SfBarcode ou SfBarcodeGenerator à des fins d'affichage et recevoir ensuite la demande de scanner les codes-barres entrants provenant d'images téléchargées, de pièces jointes d'e-mails ou de captures caméra. À ce stade, la surface de contrôle Syncfusion n'offre aucune possibilité d'aller plus loin. La documentation de Syncfusion oriente les équipes vers Barcode Reader OPX, un achat commercial distinct qui encapsule ZXing .NET — une bibliothèque disponible gratuitement sous la licence Apache 2.0. Les équipes qui atteignent ce point souvent pèsent si ajouter un deuxième produit commercial ou regrouper la génération et la lecture dans une seule bibliothèque.
Génération côté serveur et côté serveur
Les applications qui débutent comme des outils de bureau WinForms ou WPF évoluent parfois pour inclure une couche API Web, un service de traitement en arrière-plan ou une fonction cloud qui doit générer des fichiers de codes-barres. SfBarcode implique une dépendance au runtime Windows Forms qui ne se traduit pas clairement par les services ASP.NET Core, les fonctions Azure ou les conteneurs Docker Linux. L'implémentation du motif DrawToBitmap nécessite une surface de rendu WinForms qui peut ne pas exister dans un environnement sans affichage. Les équipes qui atteignent ce niveau ont généralement besoin d'une bibliothèque dont le modèle de génération est découplé dès le départ de la pile de rendu de l'interface utilisateur.
Changements d'admissibilité aux licences communautaires
La licence communautaire de Syncfusion est particulièrement intéressante pour les jeunes équipes, précisément au moment où elles connaissent leur croissance la plus rapide. Les quatre conditions d'éligibilité simultanées — chiffre d'affaires, effectifs, nombre d'employés et capitaux levés — créent un obstacle à l'obtention de licences qui peut survenir soudainement. Un tour de table de série A permet généralement à une startup de franchir le seuil de capital de 3 000 000 $ le jour de sa clôture, déclenchant une obligation de licence commerciale quel que soit le nombre de développeurs ou les revenus. Les équipes qui ont construit leurs flux de production autour de la licence communautaire doivent tenir compte du coût et du calendrier de cette transition, en particulier lorsque la licence commerciale couvre la Suite Essential Studio complète et non seulement le composant de code-barres.
Réduction des coûts de configuration spécifiques à chaque version
Les équipes d'exploitation qui assurent la maintenance des applications Syncfusion dans les pipelines CI/CD sont confrontées à la rotation des clés de licence comme tâche récurrente liée aux mises à jour des versions de NuGet . Une clé valide pour Essential Studio 24.x cesse de fonctionner après la mise à niveau vers la version 25.x, ce qui implique la mise à jour des secrets dans chaque environnement de déploiement et la vérification que les filigranes d'essai n'apparaissent pas dans les résultats de production. Les équipes ayant des cadences de publication fréquentes ou plusieurs cibles de déploiement trouvent que cette surcharge de rotation est disproportionnée par rapport au bénéfice apporté, en particulier lorsque le cas d'utilisation sous-jacent consiste à générer une image de code-barres plutôt qu'à consommer une Suite complète de composants d'interface utilisateur.
Considérations courantes en matière de migration
Suppression de l'enregistrement du fournisseur de licences Syncfusion
L'appel de licence Syncfusion — SyncfusionLicenseProvider.RegisterLicense("KEY") — apparaît généralement dans Program.cs, App.xaml.cs, ou une méthode de démarrage d'application. Il doit être supprimé et remplacé par IronBarCode.License.LicenseKey = "KEY" au même point dans la séquence de démarrage. Les appels d'enregistrement de services associés (AddSyncfusionBlazor, ConfigureSyncfusionCore) et les importations de namespace dans _Imports.razor doivent également être supprimés si aucun autre composant Syncfusion n'est maintenu dans le projet.
Modèle SfBarcode vers BarcodeWriter
Le flux de travail SfBarcode implique l'instanciation de contrôle, l'attribution de propriétés, la spécification des dimensions et le rendu DrawToBitmap. L'équivalent Code-barres IronBarcode est un seul appel chaîné : BarcodeWriter.CreateBarcode(value, encoding).ResizeTo(w, h).SaveAsPng(path). Les valeurs de l'énumération BarcodeSymbolType se mettent en correspondance directement avec les valeurs BarcodeEncoding — Code128A se met en correspondance avec Code128, QRBarcode se met en correspondance avec QRCodeWriter.CreateQrCode.
Modèle de composant Blazor vers point de terminaison d'API
SfBarcodeGenerator est un composant Razor ; Le remplacer par Code-barres IronBarcode constitue un changement structurel plutôt qu'une substitution ligne par ligne. Le modèle Code-barres IronBarcode pour Blazor est un point final d'API minimal qui retourne une image de code-barres sous forme d'octets, référencée à partir du composant Razor via une balise <img src="..."> standard. Cette approche produit un point de terminaison côté serveur qui peut être testé indépendamment et réutilisé par différents clients, plutôt qu'un composant rendu par navigateur lié à la couche JavaScript Syncfusion Blazor .
Fonctionnalités supplémentaires IronBarcode
Les fonctionnalités suivantes Code-barres IronBarcode ne sont pas abordées dans les sections précédentes et peuvent s'avérer pertinentes en fonction des exigences du projet :
- Code QR avec logo de marque intégré :
.AddBrandLogo("logo.png")intègre un logo d'entreprise au centre du code QR tout en maintenant la fiabilité du scan grâce à la correction d'erreurs. - Sortie SVG : Les codes-barres peuvent être exportés sous forme de fichiers vectoriels SVG adaptés à l'impression et aux écrans haute résolution.
- Sortie HTML : Les codes-barres peuvent être exportés sous forme de fichiers HTML autonomes.
- Détection multi-code-barres :
BarcodeReader.Readdétecte et retourne tous les codes-barres présents dans une seule image. - Évaluation de la confiance des lectures : Chaque résultat de lecture comprend un score de confiance qui permet de filtrer les détections de faible qualité.
- Annotation et style : Les codes-barres générés prennent en charge la personnalisation des marges, des couleurs, des polices et des annotations sans nécessiter d'étape de retouche d'image externe.
- Formats GS1 et USPS IMb : Code-barres IronBarcode prend en charge des formats spécialisés non contrôlés par Syncfusion, notamment GS1-128, USPS Intelligent Mail Barcode, MaxiCode et Aztec.
Compatibilité .NET et préparation à l'avenir
IronBarcode cible .NET Standard 2.0 et supérieur, offrant une compatibilité avec .NET Framework 4.6.2 et ultérieur, .NET Core 3.1, et toutes les versions de .NET actuelles, y compris .NET 8 et .NET 9. La bibliothèque reçoit des mises à jour régulières alignées sur le calendrier de version de .NET de Microsoft. Parce qu'IronBarcode est une bibliothèque programmatique statique et non un contrôle UI, elle n'est pas affectée par les différences d'évolution de plate-forme entre WinForms, WPF, Blazor, et MAUI — le même package NuGet et la même API fonctionnent à travers tous les modèles d'application .NET actuels et futurs sans cales spécifiques à la plate-forme.
Conclusion
Syncfusion Barcode et Code-barres IronBarcode diffèrent à un niveau architectural qui va bien au-delà du nombre de fonctionnalités. Le composant de rendu de code-barres Syncfusion est intégré à une vaste Suite de composants ; son objectif est d'afficher un code-barres dans une mise en page de formulaire, et il atteint parfaitement cet objectif. Code-barres IronBarcode est une bibliothèque de génération et de lecture de fichiers programmable dont l'objectif est de traiter les codes-barres comme des données — générant des fichiers, lisant des images et fonctionnant dans n'importe quel environnement de déploiement. Ce sont des outils différents, conçus pour des cas d'utilisation principaux différents, et le choix entre eux est largement déterminé par le cas d'utilisation qui s'applique au projet en question.
Syncfusion Barcode est le choix approprié lorsqu'une équipe utilise déjà Syncfusion Essential Studio pour d'autres composants d'interface utilisateur (grilles, graphiques, planificateurs) et que le besoin en code-barres est d'afficher un code-barres sur un formulaire ou dans une page Blazor . Dans ce contexte, le contrôle du code-barres est déjà inclus dans la licence existante, et son ajout à un formulaire se résume à glisser-déposer un contrôle dans le concepteur. Pour les équipes présentant ces conditions spécifiques, l'achat Code-barres IronBarcode n'apporte aucune valeur ajoutée par rapport à la licence existante.
IronBarcode est le choix approprié lorsque les besoins vont au-delà de l'affichage de formulaires : lecture de codes-barres à partir d'images téléchargées, génération de fichiers de codes-barres dans un service backend, lecture de codes-barres à partir de documents PDF, déploiement dans un conteneur Docker sous Linux ou création d'un point de terminaison d'API Web qui renvoie des images de codes-barres. C'est également le choix approprié pour les équipes dont la situation en matière de licences ne satisfait pas de manière permanente aux quatre conditions de la licence communautaire Syncfusion , ou pour les équipes qui souhaitent éviter la rotation des clés spécifiques à une version dans le cadre du processus de mise à niveau NuGet . Le modèle de licence perpétuelle d'IronBarcode et son package unifié de génération et de lecture répondent directement à ces préoccupations opérationnelles.
La contrainte définissante de l'écosystème de code-barres de Syncfusion est que la génération et la lecture sont séparées à travers deux produits, avec le produit de lecture construit sur le décodeur open-source ZXing.Net. Pour les équipes qui ont besoin des deux capacités, cet arrangement produit deux portées de licence, deux surfaces API, et une couche supplémentaire entre l'application et la bibliothèque ZXing.Net sous-jacente. Le modèle à paquet unique d'IronBarcode supprime cette indirection. Le bon choix est l'architecture qui correspond aux exigences réelles : si l'affichage de codes-barres dans une interface utilisateur Syncfusion existante constitue l'ensemble des besoins, Syncfusion est la solution naturelle ; Si le traitement des codes-barres relève du backend, Code-barres IronBarcode constitue la base la plus appropriée.
Questions Fréquemment Posées
Qu'est-ce que le BarCode de Syncfusion ?
Syncfusion 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 Syncfusion BarCode et IronBarcode ?
IronBarcode utilise une API statique, sans état, ne nécessitant aucune gestion d'instance, tandis que Syncfusion 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 Syncfusion 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 Syncfusion Barcode 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 à Syncfusion 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 à Syncfusion ?
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 Syncfusion BarCode 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 Syncfusion BarCode à IronBarcode ?
La migration de Syncfusion Barcode vers IronBarcode implique principalement le remplacement des appels API basés sur les instances par les méthodes statiques d'IronBarcode, la suppression des chaudières 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().

