Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Comment créer un kit de développement logiciel (SDK) de lecteur de codes-barres en .NET ?

IronBarcode permet aux développeurs .NET d'ajouter des fonctionnalités de lecture de codes-barres à leurs applications avec un minimum de code. Il prend en charge de multiples formats, notamment les codes-barres 1D et 2D, diverses sources d'images et offre une grande précision grâce à une détection basée sur l'apprentissage automatique pour les environnements de production.

La lecture des codes-barres est essentielle pour de nombreuses applications, de la gestion des stocks au commerce de détail et à la logistique. En intégrant la lecture des codes-barres à vos applications .NET, vous pouvez simplifier la capture de données, automatiser les flux de travail et améliorer l'efficacité. Lors de l'évaluation des solutions de lecture de codes-barres , tenez compte de facteurs tels que les formats pris en charge, la vitesse de traitement et la complexité d'intégration. La bibliothèque IronBarcode offre une compatibilité multiplateforme complète et des fonctionnalités de tolérance aux pannes exceptionnelles.

IronBarcode est une bibliothèque .NET efficace qui simplifie la gestion des codes-barres. Cet outil vous permet de lire les codes-barres à partir d'images , de flux et de fichiers PDF , ainsi que de générer des codes QR à l'aide du générateur de codes QR C# . Cet article vous montre comment intégrer la lecture de codes-barres dans votre application .NET, en se concentrant sur la création d'une API ou d'une intégration d'application Web pour exposer la fonctionnalité de lecture de codes-barres. La bibliothèque prend en charge différents formats de codes-barres, notamment les codes-barres 1D et 2D, avec des capacités de génération avancées et des options de style .

Quels sont les meilleurs cas d'utilisation pour l'intégration d'IronBarcode ?

IronBarcode excelle dans ces scénarios :

Systèmes de gestion des stocks – Automatisez le suivi des produits grâce à la lecture de plusieurs codes-barres et à la prise en charge des formats TIFF/GIF multipages. Applications logistiques – Traitement des codes-barres d'expédition grâce à une lecture haute vitesse et des formats de sortie personnalisables Systèmes de point de vente (POS) – Validation des transactions avec création de codes-barres Code 39 et 1D

Comment créer un kit de développement logiciel (SDK) de lecteur de codes-barres en .NET ?

Pour créer un lecteur de codes-barres pouvant être intégré à votre application en tant que service, intégrez IronBarcode à une API REST ou à une application web. Le choix de l'architecture dépend de vos besoins de traitement : traitement d'images individuelles pour les scans occasionnels, traitement par lots pour les flux de documents ou traitement en flux continu pour les applications de numérisation continue. Voici un exemple utilisant ASP.NET Core avec les considérations appropriées en matière de sécurité des threads . Les fonctionnalités de lecture de la bibliothèque incluent des filtres avancés de création d'images pour une précision optimale.

  1. Installez la bibliothèque .NET pour la lecture des codes-barres en C# à l'aide des packages NuGet.
  2. Créez une classe de lecture de codes-barres réutilisable avec une gestion des erreurs appropriée.
  3. Développer des méthodes de lecture des codes-barres provenant de différentes sources
  4. Intégrez la lecture d'images de codes-barres dans votre application en utilisant les paramètres améliorés.
  5. Testez et améliorez les performances grâce aux options de vitesse de lecture

De quoi ai-je besoin avant de commencer ?

Si ce n'est pas déjà fait, téléchargez IronBarcode pour votre projet. Assurez-vous de disposer de la clé de licence appropriée pour l'utilisation prévue. Notez que l'exposition des fonctionnalités d'IronBarcode via une API publique ou sa revente en tant que service autonome nécessite une licence supplémentaire (SDK, OEM ou SaaS). Assurez-vous de bien comprendre les options de licence avant de poursuivre. Pour les environnements de développement, vous pouvez commencer par la version d'essai gratuite et appliquer votre clé de licence lorsque vous serez prêt pour la production. Consultez le journal des modifications pour connaître les dernières mises à jour et les étapes importantes .

Pour des performances optimales, tenez compte de votre environnement de déploiement. IronBarcode prend en charge la compatibilité multiplateforme, notamment Windows , Linux , macOS , Docker et les plateformes cloud comme Azure et AWS Lambda . Les développeurs mobiles peuvent utiliser la prise en charge d'Android et d'iOS grâce à l'intégration de Blazor . Pour les applications .NET MAUI, suivez le tutoriel sur le lecteur de codes-barres .

Comment créer une classe de lecteur de codes-barres ?

Une fois IronBarcode configuré et installé dans votre projet, vous pouvez créer une classe de lecteur de codes-barres réutilisable qui intègre les fonctionnalités d'IronBarcode et les expose en tant que point de terminaison d'API. La mise en œuvre comprend des optimisations de performance et une correction d'image pour les scénarios difficiles avec correction d'orientation . Envisagez la mise en place de zones de culture pour un traitement plus rapide lorsque l'emplacement des codes-barres est prévisible :

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

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
$vbLabelText   $csharpLabel

Cette classe BarcodeScanner améliorée inclut des optimisations de performances grâce à la mise en cache des options, au traitement asynchrone pour une meilleure évolutivité et aux filtres d'image pour une précision accrue. La mise en œuvre respecte les principes SOLID et assure une gestion des erreurs prête pour la production. Pour des fonctionnalités supplémentaires, envisagez d'utiliser l'intégration System.Drawing ou d'exporter sous forme de flux . Vous pouvez également créer des images de codes-barres avec des styles de codes-barres personnalisés et des styles de codes QR .

Quelles méthodes dois-je utiliser pour lire différentes sources de codes-barres ?

Chaque méthode est optimisée pour des cas d'utilisation et des exigences de traitement spécifiques :

  • ReadBarcodeFromImage(string imagePath) : Lit un code-barres à partir d'un fichier image.
  • ReadBarcodeFromStream(Stream inputStream) : Lit un code-barres à partir d'un flux d'entrée (par exemple, un fichier téléchargé ou un flux de mémoire).
  • ReadBarcodeFromPdf(string filePath) : Lit un code-barres à partir d'un fichier PDF.

Pour les scénarios à volume élevé, envisagez d'utiliser les zones de culture pour améliorer la vitesse de traitement jusqu'à 5 fois lorsque les emplacements des codes-barres sont prévisibles. Vous pouvez également créer des images de codes-barres ou enregistrer des codes-barres dans différents formats. La bibliothèque prend en charge la lecture des objets System.Drawing et peut exporter les codes-barres sous forme de documents HTML ou PDF .

Comment exposer la lecture des codes-barres via une API REST ?

Pour permettre aux applications externes d'utiliser votre fonctionnalité de lecture de codes-barres, exposez-la sous forme d'API REST à l'aide d'ASP.NET Core. L'implémentation comprend une gestion appropriée des erreurs, une validation et la prise en charge de plusieurs formats d'entrée. Vous pouvez également générer des codes-barres avec le générateur d'images de codes-barres C# ou explorer des exemples de démarrage rapide de codes-barres . Lors du traitement de fichiers PDF, pensez à apposer des codes-barres sur les fichiers PDF existants pour le suivi des documents :

using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
$vbLabelText   $csharpLabel

À quoi ressemble l'API dans Swagger UI ?

L'interface utilisateur Swagger présente l'API BarcoderScannerSDK avec deux points de terminaison POST pour la lecture de codes-barres à partir d'images et de PDF, incluant une interface de téléchargement de fichiers et des options de configuration des requêtes.

À quoi ressemble la réponse de l'API ?

! Documentation de l'API montrant une requête POST réussie vers un point de terminaison de lecture de codes-barres qui renvoie " Hello World ! " avec un code de réponse 200 OK

Cette API expose des points de terminaison POST où vous pouvez télécharger des images de codes-barres, et l'API renvoie les données des codes-barres. La mise en œuvre comprend une validation appropriée, une gestion des erreurs et une journalisation pour une utilisation en production. Pour les applications mobiles , envisagez d'ajouter des points de terminaison optimisés pour les images de plus petite taille et des temps de réponse plus rapides. Vous pouvez également créer des codes-barres à partir de données ou les exporter au format HTML ou PDF . Pour les exigences de contraste élevé, générez des images de codes-barres 1-BPP . ## Quelles fonctionnalités avancées puis-je ajouter ?

Pour améliorer encore votre SDK, envisagez d'implémenter ces fonctionnalités prêtes pour la production en utilisant la documentation complète de l'API d'IronBarcode. Explorez la présentation des fonctionnalités et consultez les démonstrations pour des exemples d'implémentation pratique :

Comment prendre en charge plusieurs types de codes-barres ?

IronBarcode permet de lire plusieurs codes-barres simultanément. Vous pouvez configurer votre SDK pour accepter plusieurs codes-barres simultanément avec un filtrage de format spécifique. La bibliothèque prend en charge l'écriture de codes-barres Unicode, y compris les caractères chinois et arabes. Pour les applications spécialisées, explorez la lecture du Code 39 et créez des codes QR avec un style personnalisé :

public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
$vbLabelText   $csharpLabel

Quelles autres améliorations devrais-je envisager ?

Gestion des erreurs : Mise en œuvre d'une gestion complète des erreurs, y compris la reconnaissance des codes-barres MSI

Pour les déploiements en production, envisagez la mise en œuvre de seuils de confiance afin de réduire les faux positifs et de garantir l'exactitude des données. La détection basée sur l'apprentissage automatique peut être affinée pour votre cas d'utilisation spécifique. Lors de la création de packages de déploiement, suivez le guide d'installation MSI et corrigez tout problème de DLL manquante . Pour les déploiements AWS, soyez attentif aux problèmes d'exécution potentiels. Envisagez de créer des codes-barres avec différents formats de données de sortie et explorez les tutoriels de lecture de codes-barres .

Quelles sont les considérations relatives aux licences dont je dois tenir compte ?

Comme mentionné précédemment, le SDK IronBarcode est destiné à être intégré à vos applications internes, et l'exposer via une API nécessite une licence supplémentaire. Vous devez obtenir les licences nécessaires (SDK, OEM ou SaaS) avant d'exposer IronBarcode dans le cadre d'un service, tel qu'une API publique. Pour les déploiements en entreprise, envisagez les extensions de licence disponibles pour obtenir des postes supplémentaires ou améliorer le support. Examinez les options de mise à niveau pour faire évoluer votre déploiement.

Ne revendez pas IronBarcode en tant que SDK autonome et ne l'exposez pas via une API publique sans vous assurer que votre licence couvre cet usage. Pour les applications web, il peut être nécessaire de configurer la clé de licence dans le fichier web.config pour une activation correcte. Restez informé des mises à jour de sécurité CVE et suivez les bonnes pratiques pour les exceptions de copie en cours d'exécution . Pour les problèmes techniques, envisagez de soumettre une demande d'assistance technique . Consultez les ressources sur l'écriture des codes-barres Unicode et explorez le tutoriel sur la lecture des codes-barres .

Pourquoi devrais-je essayer IronBarcode aujourd'hui ?

Découvrez les nouvelles fonctionnalités d'IronBarcode. Essayez notre version d'essai gratuite et découvrez une génération, une lecture et une édition de codes-barres fluides pour vos applications .NET. Avec des fonctionnalités avancées, des performances exceptionnelles et une interface conviviale, IronBarcode est la solution ultime pour tous vos besoins en matière de codes-barres. Explorez notre documentation complète , consultez des exemples de code et assistez à des démonstrations en direct pour comprendre toutes les fonctionnalités. Consultez les tutoriels sur la lecture des codes-barres et découvrez la prise en charge des formats MicroQR et rMQR . Découvrez les options de package NuGet pour différents scénarios de déploiement. Vous pouvez également consulter la documentation d'IronBarcode pour obtenir plus d'informations sur notre solution complète de codes-barres. Démarrez votre essai gratuit dès aujourd'hui et améliorez vos projets.

Questions Fréquemment Posées

Comment puis-je intégrer un lecteur de code-barres dans une application .NET ?

Vous pouvez intégrer un lecteur de code-barres dans une application .NET en utilisant la bibliothèque IronBarcode. Tout d'abord, installez IronBarcode, puis créez une classe pour la numérisation de code-barres et implémentez des méthodes pour lire les codes-barres à partir d'images, de flux et de PDF. Enfin, testez et optimisez votre configuration.

Comment exposer la fonctionnalité de lecture de code-barres en tant qu'API REST ?

Pour exposer la fonctionnalité de lecture de code-barres en tant qu'API REST, utilisez ASP.NET Core pour créer une application web. Incorporez la bibliothèque IronBarcode, développez une classe BarcodeScanner et définissez les points de terminaison de l'API qui lisent les codes-barres en utilisant des méthodes comme ReadBarcodeFromImage et ReadBarcodeFromStream.

Quels types de codes-barres peuvent être lus en utilisant une bibliothèque de codes-barres .NET ?

Une bibliothèque de codes-barres .NET comme IronBarcode peut lire divers types de codes-barres, y compris les codes QR, Code 128, UPC et EAN. Vous pouvez configurer la bibliothèque pour détecter simultanément plusieurs types de codes-barres en définissant des paramètres de détection.

Comment puis-je gérer les erreurs lors de la lecture de codes-barres en .NET ?

La gestion des erreurs lors de la lecture de codes-barres peut être réalisée en implémentant une gestion robuste des erreurs au sein de vos méthodes de numérisation de codes-barres en utilisant IronBarcode. Assurez-vous de capturer les exceptions et de fournir un retour d'information significatif ou des mécanismes de réessai pour améliorer la fiabilité du processus de lecture des codes-barres.

Quelles sont les exigences de licence pour utiliser une bibliothèque de codes-barres .NET dans une API publique ?

Lorsque vous utilisez IronBarcode dans une API publique, assurez-vous d'avoir une licence appropriée. Cela inclut l'obtention de licences SDK, OEM ou SaaS, car exposer la fonctionnalité de la bibliothèque en tant que service autonome ou API publique nécessite des autorisations supplémentaires.

Puis-je traiter par lots plusieurs numérisations de codes-barres en utilisant une bibliothèque .NET ?

Oui, vous pouvez traiter par lots plusieurs numérisations de codes-barres en utilisant IronBarcode. La bibliothèque vous permet de lire plusieurs codes-barres en une seule opération, ce qui peut être particulièrement utile pour traiter efficacement de grands ensembles d'images ou de documents.

Existe-t-il une version d'essai disponible pour une bibliothèque de codes-barres .NET ?

Oui, IronBarcode offre une version d'essai gratuite vous permettant d'explorer ses capacités en matière de génération, de lecture et d'édition de codes-barres dans les applications .NET. Cet essai peut vous aider à évaluer la bibliothèque avant de prendre une décision d'achat.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite