IRONSOFTWAREHOME
COMPARER À D'AUTRES COMPOSANTS

Accusoft BarcodeXpresscontre Code-barres IronBarcode : Licences, Débit, et Compromis d'API

Curtis Chau
Curtis Chau
Updated: 26 avril 2026

Lorsque vous évaluez une bibliothèque de codes-barres via sa version d'essai, vous vous attendez à vérifier si elle fonctionne réellement avec vos images avant de procéder à un achat. Accusoft BarcodeXpressne vous offre pas cette option. En mode évaluation, les valeurs de codes-barres décodées sont estampillées avec la chaîne " UNLICENSED accusoft.com " et les codes-barres 2D générés portent le même tampon. Vous pouvez vérifier que la bibliothèque trouve un code-barres, mais vous ne pouvez pas vérifier qu'elle le lit correctement. Il s'agit d'une situation où l'on s'engage avant même de vérifier, et cela constitue un point de friction important avant même d'avoir examiné les prix.

Comprendre Accusoft BarcodeXpress

Accusoft conçoit depuis des décennies des logiciels d'imagerie documentaire pour les environnements Enterprise . BarcodeXpress fait partie d'une gamme de produits plus large qui comprend PrizmDoc, ImageGear et Accusoft Imaging. Les équipes utilisant déjà ces produits retrouvent une interface API familière et peuvent s'appuyer sur leur compte Accusoft existant. Pour une utilisation autonome des codes-barres, ce contexte présente moins d'intérêt.

Le kit de développement logiciel (SDK) principal est disponible sous forme de package NuGet for .NET Core. L'API est basée sur une instance — vous créez un objet BarcodeXpress, configurez la propriété Licensing, puis utilisez les objets enfants reader et writer pour les opérations réelles. Le système de licences à double clé distingue BarcodeXpress de la plupart des alternatives.

Principales caractéristiques architecturales de BarcodeXpress :

  • API basée sur l'instance : Chaque opération nécessite une instance BarcodeXpress ; les méthodes statiques de commodité ne font pas partie de la conception
  • Licences à deux niveaux : Les licences SDK (SetSolutionName + SetSolutionKey) et les licences OEM/runtime (SetOEMLicenseKey) sont des systèmes séparés nécessitant des achats distincts
  • Estampillage en mode évaluation : En mode évaluation, les valeurs décodées sont estampillées avec " UNLICENSED accusoft.com " (et les codes-barres 2D générés sont estampillés avec la même chaîne), rendant impossible le test de précision avant-achat
  • Spécification manuelle du format : Le lecteur nécessite une configuration explicite BarcodeTypes pour énumérer quelles symbologies rechercher ; les formats non spécifiés ne sont pas détectés
  • Plafond standard de 40 pages par minute : L'édition standard limite le traitement à 40 pages par minute, une limite que la plupart des équipes rencontrent après le déploiement plutôt qu'avant.
  • Prise en charge native des fichiers PDF : les fichiers PDF doivent être pré-convertis en images à l'aide d'une bibliothèque externe avant de pouvoir être traités par le lecteur.
  • Minimum de cinq licences d'exécution : même un déploiement sur un seul serveur nécessite l'achat d'au moins cinq licences d'exécution.

Explication du système à deux clés

BarcodeXpress divise le système de licences en deux couches conceptuellement distinctes :

// BarcodeXpress: two separate license keys required
using Accusoft.BarcodeXpressSdk;

// Constructor takes the path to the runtime files (e.g. ".").
var barcodeXpress = new BarcodeXpress(".");

// Step 1: SDK license (for development).
// SetSolutionName and SetSolutionKey are methods, not properties.
// SetSolutionKey takes four 32-bit integers (not a parsed long).
barcodeXpress.Licensing.SetSolutionName("YourCompanyName");
barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

// Step 2: OEM/runtime license (for production — minimum 5 purchased).
try
{
    barcodeXpress.Licensing.SetOEMLicenseKey("YourOEMLicenseString");
}
catch (Exception ex)
{
    // Without a valid OEM license, the SDK runs in stamped evaluation mode.
    Console.WriteLine($"OEM license activation failed: {ex.Message}");
}

Le couple SetSolutionKey active le SDK lui-même. L'appel SetOEMLicenseKey active les capacités de déploiement en production. Les deux doivent être présents et valides pour qu'un déploiement en production renvoie des valeurs de codes-barres sans le tampon " UNLICENSED accusoft.com ".

Lors de l'examen du code, ce modèle produit une question prévisible : " Pourquoi avons-nous deux activations de licence séparées ? " La réponse — qu'Accusoft traite la licence SDK et la licence de déploiement comme des produits séparés avec facturation séparée — n'est pas toujours évidente depuis l'API elle-même. Les équipes chargées de la maintenance de ce code six mois après sa configuration initiale doivent souvent se référer à la documentation pour comprendre à quoi correspond chaque clé.

Sans licence OEM valide, SetOEMLicenseKey génère une exception et le SDK revient en mode évaluation. Les équipes enveloppent typiquement l'activation dans try/catch afin que l'échec soit consigné bruyamment au lieu de produire silencieusement des valeurs de code-barres estampillées en production :

try
{
    barcodeXpress.Licensing.SetOEMLicenseKey(oemKey);
}
catch (Exception ex)
{
    // In evaluation mode, barcode values are stamped with
    // " UNLICENSED accusoft.com " in the output.
    throw new InvalidOperationException(
        "OEM license activation failed — barcode values will be stamped", ex);
}

Cette garde est le modèle que les équipes ajoutent lorsqu'elles réalisent que la sortie en mode évaluation tamponne silencieusement les résultats plutôt que de lever une exception lors du décodage.

Comprendre IronBarcode

IronBarcode est une bibliothèque de codes-barres .NET autonome, sans aucune dépendance externe autre que son package NuGet . Il gère à la fois la génération et la lecture via des méthodes de fabrique statiques, ce qui signifie qu'il n'y a pas de cycle de vie d'instance à gérer et pas d'appels de constructeur dispersés dans le code de l'application.

Le modèle de licence à clé unique signifie que ce que vous testez en mode d'essai est ce qui est exécuté en production ; la seule différence est un filigrane sur les images de codes-barres générées pendant la période d'essai. Les valeurs décodées sont toujours complètes, ce qui vous permet de vérifier la précision de lecture sur vos documents avant de décider d'acheter.

Caractéristiques principales d' IronBarcode:

  • Conception d'API statique : BarcodeReader.Read() et BarcodeWriter.CreateBarcode() sont des méthodes statiques sans état — aucune gestion d'instance requise
  • Clé de licence unique : une seule clé couvre à la fois le développement et le déploiement en production ; il n'y a pas de couche de licence d'exécution distincte
  • Valeurs d'essai complètes : le mode d'essai renvoie des valeurs décodées complètes ; Le filigrane s'applique uniquement aux images de sortie générées, et non aux résultats de lecture.
  • Détection automatique du format : Code-barres IronBarcode détecte automatiquement la symbologie dans tous les formats pris en charge ; aucune énumération BarcodeTypes n'est nécessaire
  • Prise en charge native du PDF : BarcodeReader.Read("document.pdf") traite les fichiers PDF directement sans étape de rendu séparée
  • Aucun plafond de débit : la vitesse de traitement est uniquement limitée par la capacité du matériel et du réseau, et non par un plafond imposé par logiciel.
  • Conception thread-safe : les méthodes statiques sans état peuvent être appelées simultanément par un nombre quelconque de threads sans isolation d'instance.

Comparaison des fonctionnalités

FonctionAccusoft BarcodeXpressCode-barres IronBarcode
Modèle de licenceLicence SDK + licence d'exécution distincteClé perpétuelle unique
Comportement du mode d'évaluationValeurs de code-barres estampillées avec " UNLICENSED accusoft.com "Valeurs complètes renvoyées, filigrane uniquement sur le résultat généré
Limite de débit (standard)40 pages par minuteAucune limite de débit
Prise en charge des fichiers PDFNécessite une bibliothèque PDF externe pour l'extraction d'imagesNatif — BarcodeReader.Read("doc.pdf")
Style APIConfiguration détaillée basée sur les instancesMéthodes de fabrique statiques, API fluide
Sécurité des threadsInstance par thread requiseMéthodes statiques sans état — naturellement thread-safe
point d'entrée en matière de prix1 960 $ + SDK + 2 500 $ + environnement d'exécution (min. 5)749 $ perpétuel (Lite, 1 développeur)

Comparaison détaillée des fonctionnalités

FonctionAccusoft BarcodeXpressCode-barres IronBarcode
Licence
Modèle de licenceClé SDK + clé d'exécutionClé perpétuelle unique
Licences d'exécution minimales5 (même pour 1 serveur)Concept de licence sans exécution
Mode d'évaluationValeurs estampillées avec " UNLICENSED accusoft.com "Valeurs complètes, filigrane uniquement sur les images de sortie
Licence perpétuelleNon standard — contactez le service commercialOui, tous les niveaux
renouvellement annuelNécessaire pour le supportEn option
En lisant
Détection automatique du formatManuel — doit préciser les types de codes-barresAutomatique pour tous les formats pris en charge
Lecture de PDFNécessite une bibliothèque PDF externeNatif
Plusieurs codes-barres par imageOui, avec la configuration BarcodeTypesOui, avec l'option ExpectMultipleBarcodes
Propriétés du résultatBarcodeValue, BarcodeTypeValue, Format, Confidence, PageNumber
Limite de débit40 PPM (Édition standard)Aucune limite à aucun niveau
Génération
Génération du code 128Oui, via writer.BarcodeTypeOui, via BarcodeWriter.CreateBarcode()
génération de code QROuiOui, via QRCodeWriter.CreateQrCode()
Code QR avec logoSuperposition d'image manuelle requiseAddBrandLogo("logo.png") intégré
Formats de sortieenregistrement du fichierPNG, JPG, PDF, données binaires, flux
Plateforme et déploiement
.NET FrameworkKit de développement logiciel (SDK) hérité séparé.NET Framework4.6.2+
.NET Core / .NET 5+Oui (kit de développement logiciel .NET Core ).NET Core 3.1+, .NET 5/6/7/8/9
Linux/DockerOuiOui — Windows x64/x86, Linux x64, macOS x64/ARM
Configuration de la licence Dockerfichier de licence ou serveur de licencesVariable d'environnement
Intégration CI/CDLes clés SDK et d'exécution sont toutes deux requises.Un secret
Traitement par lots
Sécurité du filInstance par thread requiseSans état — Parallel.ForEach coffre-fort
Lot parallèleNécessite une gestion d'instance par threadPrise en charge de Direct Parallel.ForEach

Architecture des licences

La différence de complexité des licences entre BarcodeXpress et Code-barres IronBarcode est surtout visible lors de l'écriture du code d'initialisation qui sera exécuté en production.

Approche BarcodeXpress

using Accusoft.BarcodeXpressSdk;

public class BarcodeService
{
    private readonly BarcodeXpress _barcodeXpress;

    public BarcodeService()
    {
        _barcodeXpress = new BarcodeXpress(".");

        // Layer 1: SDK license
        _barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
        _barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);

        // Layer 2: OEM/runtime license — separate purchase, minimum 5
        try
        {
            _barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");
        }
        catch (Exception ex)
        {
            throw new InvalidOperationException(
                "OEM license activation failed — barcode values will be stamped", ex);
        }
    }
}

Ce constructeur existe entièrement pour gérer deux activations de licence séparées avant toute opération de code-barres. Le try/catch autour de SetOEMLicenseKey n'est pas optionnel — sans cela, le service renverra silencieusement des valeurs estampillées dans tout environnement où la clé OEM est absente ou mal configurée.

Approche IronBarcode

using IronBarCode;

// In Program.cs or startup configuration
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

C'est l'ensemble complet des licences. Pas de déverrouillage runtime séparé, pas de nom de solution, pas d'appel UnlockRuntime avec deux arguments. Dans Docker, cela devient une variable d'environnement lue au démarrage. Dans un pipeline CI/CD, il s'agit d'un secret. Dans un orchestrateur de conteneurs, il s'agit d'une variable d'environnement injectée dans le pod.

Lecture des codes-barres

La lecture des codes-barres révèle la différence entre les philosophies de configuration des deux bibliothèques : BarcodeXpress exige une énumération explicite du format et une API de configuration basée sur les propriétés, tandis Code-barres IronBarcode détecte automatiquement tout à partir d'un seul appel de méthode.

Approche BarcodeXpress

La lecture avec BarcodeXpress nécessite de charger l'image dans un System.Drawing.Bitmap, d'assigner l'ensemble de symbologie à reader.BarcodeTypes en tant que System.Array de valeurs BarcodeType, et d'appeler Analyze(bitmap) pour récupérer les résultats. Le SDK ne lit pas les PDF directement — les formats d'entrée documentés sont TIFF, JPEG, PNG, et BMP :

using Accusoft.BarcodeXpressSdk;
using System.Drawing;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var barcodeXpress = new BarcodeXpress(".");
    barcodeXpress.Licensing.SetSolutionName("AcmeCorp");
    barcodeXpress.Licensing.SetSolutionKey(1, 2, 3, 4);
    barcodeXpress.Licensing.SetOEMLicenseKey("OEMLicenseString");

    using var bitmap = new Bitmap(imagePath);

    // BarcodeTypes is a System.Array of BarcodeType values (not a [Flags]
    // enum). Pass Enum.GetValues to scan for everything, or assign a
    // narrower array to restrict the search space.
    barcodeXpress.reader.BarcodeTypes = new[]
    {
        BarcodeType.Code128Barcode,
        BarcodeType.DataMatrixBarcode,
        BarcodeType.QRCodeBarcode
    };

    Result[] results = barcodeXpress.reader.Analyze(bitmap);
    return results.Select(r => r.BarcodeValue);
}

Analyze prend un Bitmap et renvoie un Result[]. Si un document contient un format non présent dans le tableau BarcodeTypes, il ne sera pas trouvé. Cela engendre des frais de maintenance supplémentaires lorsque les sources de documents changent. Les PDF nécessitent un pré-rendu en images avec une bibliothèque séparée avant qu'ils ne puissent être introduits dans Analyze.

Approche IronBarcode

using IronBarCode;

public IEnumerable<string> ReadAllBarcodes(string imagePath)
{
    var results = BarcodeReader.Read(imagePath);
    return results.Select(r => r.Value);
}

IronBarcode détecte automatiquement le format pour toutes les symbologies prises en charge. Si l'image contient un Code 128, un code QR et un DataMatrix, les trois apparaissent dans la collection de résultats sans aucune modification de configuration. Pour un contrôle plus précis du comportement de lecture, la classe BarcodeReaderOptions expose des paramètres de vitesse, de nombre de threads et de lecture de plusieurs codes-barres.

La lecture native des fichiers PDF est également possible via la même méthode :

using IronBarCode;

// NatifPDF support — no separate library needed
var results = BarcodeReader.Read("invoice-batch.pdf");

foreach (var result in results)
{
    Console.WriteLine($"Page {result.PageNumber}: [{result.Format}] {result.Value}");
}

BarcodeXpress ne lit pas les fichiers PDF nativement. Vous devez d'abord convertir chaque page en image, à l'aide d'une bibliothèque distincte, puis transmettre ces images au lecteur BarcodeXpress. Cela ajoute une dépendance, une étape de conversion et un coût de licence supplémentaire en fonction de la bibliothèque PDF choisie.

Traitement par lots et sécurité des filetages

Le traitement à haut volume de codes-barres met en évidence la différence architecturale entre le modèle d'instance avec état de BarcodeXpress et l'API statique sans état d'IronBarcode.

Approche BarcodeXpress

BarcodeXpress est basé sur une instance et son objet reader est avec état. Le traitement parallèle nécessite une instance par thread, l'initialisation complète de la licence à deux niveaux étant répétée dans chaque contexte de thread :

using Accusoft.BarcodeXpressSdk;
using System.Collections.Generic;
using System.Drawing;

public Dictionary<string, string> ProcessBatch(IEnumerable<string> imagePaths)
{
    var results = new Dictionary<string, string>();

    foreach (var path in imagePaths)
    {
        using var bitmap = new Bitmap(path);

        _barcodeXpress.reader.BarcodeTypes = new[]
        {
            BarcodeType.Code128Barcode,
            BarcodeType.QRCodeBarcode
        };

        var barcodes = _barcodeXpress.reader.Analyze(bitmap);
        if (barcodes.Length > 0)
            results[path] = barcodes[0].BarcodeValue;
    }

    return results;
}

L'édition standard impose également un plafond de 40 pages par minute. Le traitement d'un lot de 100 000 documents à 40 PPM prend environ 41 heures. L'édition Professional supprime cette limite, mais à un coût plus élevé par développeur, en plus des licences d'exécution déjà achetées.

Approche IronBarcode

using IronBarCode;
using System.Collections.Concurrent;
using System.Threading.Tasks;

// Code-barres IronBarcode — parallel batch with thread-safe static API
var files = Directory.GetFiles("/incoming/scans", "*.png");
var allResults = new ConcurrentBag<string>();

Parallel.ForEach(files, file =>
{
    var r = BarcodeReader.Read(file);
    foreach (var barcode in r)
        allResults.Add($"{file}: {barcode.Value}");
});

Parce que les méthodes statiques de Code-barres IronBarcode sont sans état, Parallel.ForEach sur eux est sûr sans nécessiter d'isolation d'instance. Code-barres IronBarcode n'impose aucun plafond de débit, quel que soit le niveau de prix. Pour ajuster les performances de lecture, la classe BarcodeReaderOptions fournit des réglages ReadingSpeed et MaxParallelThreads :

using IronBarCode;

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    MaxParallelThreads = 4
};

var results = BarcodeReader.Read("warehouse-scan.png", options);

ReadingSpeed.Balanced est la valeur par défaut. Utilisez ReadingSpeed.Faster pour des pipelines à haut débit où les codes-barres sont propres, ou ReadingSpeed.Detailed pour des images endommagées ou à faible contraste.

Référence de mappage d'API

Accusoft BarcodeXpressCode-barres IronBarcode
new BarcodeXpress(".")Méthodes statiques — aucune instance requise
Licensing.SetSolutionName("...")IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
Licensing.SetSolutionKey(int, int, int, int)(removed — not needed)
Licensing.SetOEMLicenseKey(string)(removed — no separate runtime license concept)
try/catch autour de l'activation OEM(removed — license is always either valid or not)
reader.Analyze(bitmap) (charge System.Drawing.Bitmap en premier)BarcodeReader.Read(path)
reader.BarcodeTypes = new[] { BarcodeType.Code128Barcode, ... }(removed — auto-detection handles all formats)
result.BarcodeValueresult.Value
result.BarcodeTyperesult.Format
writer.BarcodeType = BarcodeType.Code128BarcodeWriter.CreateBarcode("data", BarcodeEncoding.Code128)
writer.BarcodeValue = "data"(first argument to CreateBarcode)
writer.SaveToFile(path).SaveAsPng(path)
Limite standard de 40 ppmAucune limite de débit à aucun niveau
Évaluation : valeurs estampillées avec " UNLICENSED accusoft.com "Essai : valeurs complètes, filigrane uniquement sur les images de sortie

Lorsque les équipes envisagent de passer d'Accusoft BarcodeXpress à IronBarcode

Dépasser le seuil des 40 ppm

La limite de 40 pages par minute de l'édition standard semble généreuse jusqu'à ce qu'une équipe commerciale décide d'effectuer un traitement par lots en fin de journée sur une année entière de factures archivées. Le traitement d'un lot de 100 000 documents à ce rythme prend environ 41 heures. Passer à l'édition Professional supprime la limite, mais au prix d'un coût plus élevé par poste de développeur, en plus des licences d'exécution déjà achetées. Les équipes qui découvrent le plafond de débit après avoir signé un bon de commande constatent souvent que le coût total de sa suppression dépasse largement les estimations initiales.

Complexité des licences des pipelines CI/CD

Une configuration CI/CD typique exécute les builds dans des conteneurs éphémères. Avec BarcodeXpress, chaque environnement de compilation nécessite à la fois la paire de clés du SDK et les clés de déverrouillage d'exécution, gérées comme des secrets distincts. Si la clé d'exécution est manquante ou mal configurée, la compilation peut réussir, mais les tests d'intégration renvoient des valeurs masquées — un mode de défaillance silencieux facile à manquer dans un pipeline de test si les assertions de test ne sont pas soigneusement écrites par rapport au contenu réel du code-barres.

Exigences de déploiement isolé et sécurisé

Certains environnements — systèmes de santé traitant les dossiers des patients, flux de travail documentaires gouvernementaux, traitement administratif des institutions financières — ne peuvent pas effectuer de validation de licence lors d'appels réseau sortants. Le système de licences d'exécution de BarcodeXpress repose sur l'infrastructure de licences d'Accusoft, ce qui peut poser un problème de conformité dans les environnements soumis à des restrictions strictes en matière de trafic réseau sortant. Les équipes travaillant dans ces environnements choisissent souvent des bibliothèques dont la validation des licences est entièrement locale.

Déploiement de Docker et de conteneurs

BarcodeXpress dans Docker nécessite généralement soit de monter un fichier de licence dans le conteneur à un emplacement connu, soit de configurer un serveur de licences et de pointer le conteneur vers celui-ci. Les deux approches ajoutent de la complexité au déploiement : les fichiers de licence doivent être distribués et synchronisés, et un serveur de licences représente un élément d'infrastructure supplémentaire à maintenir. Les équipes qui adoptent des architectures de microservices ou des modèles de déploiement sans serveur constatent que l'approche par fichier de configuration ne se traduit pas facilement en images de conteneurs immuables.

Exigences en matière de précision d'évaluation

Les équipes qui ont besoin de valider la précision de lecture sur leurs propres documents avant de procéder à un achat trouvent le mode d'évaluation de BarcodeXpress fondamentalement limitant. Les tests effectués sur des documents numérisés réels — vérifiant si la bibliothèque gère les codes-barres à faible contraste, les images déformées ou les pages à codes-barres multiples — nécessitent des valeurs décodées complètes. Les résultats partiellement masqués indiquent seulement que la bibliothèque a trouvé un code-barres, et non si elle l'a lu correctement.

Considérations courantes en matière de migration

Gestion des instances pour les appels statiques

BarcodeXpress nécessite qu'une instance BarcodeXpress soit créée et licenciée avant toute opération. Les méthodes statiques d'IronBarcode ne nécessitent pas d'instance. Les équipes qui migrent ont généralement une classe BarcodeService dont le constructeur est en grande partie un boilerplate de licence — après la migration, ce constructeur peut être entièrement supprimé ou réduit à une simple assignation de clé de licence.

Suppression de l'énumération des types de codes-barres

Chaque opération de lecture BarcodeXpress nécessite une assignation de tableau BarcodeTypes pour énumérer quelles symbologies rechercher. Code-barres IronBarcode détecte automatiquement tous les formats pris en charge par défaut. Pendant la migration, toutes les assignations reader.BarcodeTypes = ... peuvent être supprimées sans remplacement. S'il y a une raison de performance pour restreindre l'espace de recherche, BarcodeReaderOptions supporte le filtrage de format comme un opt-in explicite plutôt qu'un défaut requis.

Résultat : Modifications du nom de la propriété

Deux renommages de propriétés affectent tout le code de traitement des résultats : result.BarcodeValue devient result.Value, et result.BarcodeType devient result.Format. Une fonction de recherche et de remplacement à l'échelle de la solution gère les deux. Les résultats Code-barres IronBarcode exposent également result.Confidence et result.PageNumber, qui n'ont pas d'équivalent BarcodeXpress et peuvent être utilisés pour un filtrage supplémentaire sans modifications du code de gestion des résultats existants.

Configuration de la licence Docker

Les déploiements Docker de BarcodeXpress utilisent généralement un fichier de configuration de licence monté. Code-barres IronBarcode utilise une variable d'environnement. La migration implique la suppression de l'instruction COPY pour le fichier de configuration et l'ajout d'une assignation d'une seule variable d'environnement. Dans Kubernetes, la clé de licence devient une référence secrète dans la spécification du pod plutôt qu'un volume monté.

Fonctionnalités supplémentaires IronBarcode

Au-delà des fonctionnalités essentielles abordées dans cette comparaison, Code-barres IronBarcode offre des capacités qui ne font pas partie de l'offre de BarcodeXpress :

  • QR Code avec Logo : QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png") intègre une image de marque dans un QR code nativement, avec un niveau de correction d'erreur configurable pour maintenir la fiabilité du scan
  • Ajout de codes-barres sur les PDF : Insérez des codes-barres directement sur des documents PDF existants sans bibliothèque PDF distincte.
  • Exportation par lots : Traitez des documents PDF entiers en une seule opération et recevez des résultats par page avec numéro de page, format, valeur et score de confiance.

Compatibilité .NET et préparation à l'avenir

IronBarcode prend en charge .NET Framework4.6.2 et versions ultérieures, .NET Core 3.1 et .NET 5, 6, 7, 8 et 9. Les plateformes cibles incluent Windows x64 et x86, Linux x64 et macOS x64 et ARM. BarcodeXpress for .NET Core est un SDK distinct de l'ancienne édition .NET Framework ; les équipes qui mettent à niveau le framework cible de leur application doivent en tenir compte. Le package unique d'IronBarcode couvre tous les environnements d'exécution pris en charge. Des mises à jour régulières suivent les nouvelles versions de .NET au fur et à mesure de leur publication.

Conclusion

BarcodeXpress et Code-barres IronBarcode représentent deux philosophies de conception différentes pour les bibliothèques de codes-barres .NET commerciales. BarcodeXpress considère l'accès au SDK et le déploiement en production comme des produits sous licence distincts, avec une facturation, des systèmes de clés et des exigences d'achat minimales distincts. Code-barres IronBarcode considère la bibliothèque comme un produit unique avec une seule clé qui couvre tous les environnements, du développement à la production.

BarcodeXpress est un choix judicieux pour les équipes déjà intégrées à l'écosystème de produits Accusoft ; les organisations utilisant PrizmDoc ou ImageGear trouveront l'API de BarcodeXpress familière et leur relation avec leur compte Accusoft utile pour un support consolidé. Pour ces équipes, le système de licences à deux clés constitue un modèle opérationnel établi plutôt qu'une nouvelle source de friction. Le SDK convient également aux environnements où les sources de documents sont bien contrôlées et les exigences de format stables, faisant de la spécification manuelle BarcodeTypes une configuration unique acceptable plutôt qu'une maintenance continue.

IronBarcode est mieux adapté aux équipes déployant sur des conteneurs, des pipelines CI/CD et des environnements cloud où la complexité de la gestion des licences affecte directement les frais généraux opérationnels. Le modèle de détection automatique, l'API statique et la prise en charge native du format PDF réduisent la surface du code d'intégration, et le modèle de licence à clé unique simplifie la gestion des secrets dans les environnements de développement, de test et de production. Pour les équipes qui doivent évaluer la précision de lecture avant l'achat, le résultat complet de l'essai — avec un filigrane sur les images générées et non sur les résultats de lecture — permet une véritable évaluation comparative avant l'achat.

La différence de prix est significative à tous les niveaux. Au niveau d'un développeur individuel, l'écart entre le SDK BarcodeXpress Plus les licences d'exécution minimales et le niveau Lite d'IronBarcode est considérable. Pour les équipes pour lesquelles l'intégration à l'écosystème Accusoft prime sur la différence de coût, BarcodeXpress reste un choix judicieux. En revanche, pour celles qui évaluent les bibliothèques de codes-barres selon leurs propres mérites, les limitations du mode d'évaluation, la licence à deux clés et les plafonds de débit font Code-barres IronBarcode l'option la plus simple.

Veuillez noter: Accusoft est une marque déposée de son propriétaire respectif. Ce site n'est affilié à, approuvé par, ou sponsorisé par Accusoft. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.
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 et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise