Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Comment scanner des codes-barres dans une application ASP.NET

La numérisation de codes-barres est devenue une fonctionnalité indispensable dans les applications web modernes, alimentant tout, des systèmes de gestion d'inventaire aux flux de traitement de documents. Que vous suiviez des produits dans un entrepôt, traitiez des billets lors d'un événement ou numérisiez des documents papier, la mise en œuvre d'une numérisation de code-barres fiable dans votre application web ASP.NET peut améliorer considérablement l'efficacité et réduire les erreurs.

IronBarcode emerges as the premier C# barcode reader library for ASP.NET and web developers, offering a powerful yet straightforward solution for both reading and generating barcodes. Contrairement à d'autres bibliothèques de lecteurs de code-barres ASP .NET qui nécessitent des configurations complexes ou ont du mal avec les images du monde réel, IronBarcode offre des résultats de lecteur de code-barres précis avec fiabilité et confiance. Sa compatibilité multiplateforme garantit que votre application web fonctionne de manière transparente, qu'elle soit déployée sur Windows, Linux ou des conteneurs cloud, tandis que sa détection de code-barres alimentée par l'apprentissage automatique gère même les images de code-barres les plus difficiles en les convertissant en un format lisible par machine.

Comment configurer IronBarcode comme lecteur de code-barres dans ASP.NET ?

Commencer avec IronBarcode dans vos projets .NET prend juste quelques minutes. La bibliothèque prend en charge à la fois les applications ASP.NET Core et les applications traditionnelles ASP.NET MVC, ce qui la rend polyvalente pour une large gamme de types de projets.

Tout d'abord, installez IronBarcode en utilisant la console du gestionnaire de packages NuGet :

Install-Package BarCode

Alternativement, vous pouvez l'installer via l'interface utilisateur du gestionnaire de packages NuGet de Visual Studio en recherchant "IronBarCode" et en cliquant sur Installer. Le package gère automatiquement toutes les dépendances, assurant une intégration en douceur. Pour des instructions détaillées d'installation, consultez le guide d'installation IronBarcode.

Une fois installé, ajoutez l'instruction using nécessaire à vos fichiers de lecteur de code-barres C# :

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

Cette importation simple vous donne accès aux capacités complètes de lecture et de génération de code-barres d'IronBarcode. La bibliothèque prend en charge plus de 30 formats de code-barres, y compris la génération de codes QR, Code 128, Code 39, Data Matrix et PDF417, couvrant pratiquement tous les types de code-barres que vous rencontrerez dans les environnements de production. Selon la documentation de Microsoft sur ASP.NET, une bonne gestion des packages est cruciale pour maintenir des applications web sécurisées et efficaces.

Comment mettre en œuvre la numérisation de code-barres par téléchargement de fichiers ?

Le scénario de numérisation de code-barres le plus courant dans les applications web ASP.NET implique que les utilisateurs téléchargent un fichier image contenant des codes-barres dans les navigateurs web. Cette implémentation fonctionne parfaitement pour traiter des factures, des étiquettes de livraison ou tout document avec des codes-barres intégrés.

Créez un formulaire HTML simple dans votre vue ASP.NET en utilisant un élément div :

<form method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="barcodeFile">Select Barcode Image:</label>
        <input type="file" name="barcodeFile" id="barcodeFile" 
               accept="image/*,.pdf" class="form-control" />
    </div>
    <button type="submit" class="btn btn-primary">Scan Barcode</button>
</form>
<div id="results">
    @ViewBag.BarcodeResult
</div>
<form method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="barcodeFile">Select Barcode Image:</label>
        <input type="file" name="barcodeFile" id="barcodeFile" 
               accept="image/*,.pdf" class="form-control" />
    </div>
    <button type="submit" class="btn btn-primary">Scan Barcode</button>
</form>
<div id="results">
    @ViewBag.BarcodeResult
</div>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Implémentez maintenant le contrôleur backend pour traiter le fichier téléchargé avec votre lecteur de code-barres ASP.NET :

[HttpPost]
public async Task<IActionResult> ScanBarcode(IFormFile barcodeFile)
{
    if (barcodeFile != null && barcodeFile.Length > 0)
    {
        using (var stream = new MemoryStream())
        {
            await barcodeFile.CopyToAsync(stream);
            stream.Position = 0;
            // Read barcode from the uploaded image
            var results = BarcodeReader.Read(stream);
            if (results.Any())
            {
                ViewBag.BarcodeResult = string.Join(", ", 
                    results.Select(r => $"{r.BarcodeType}: {r.Text}"));
            }
            else
            {
                ViewBag.BarcodeResult = "No barcodes found in the image.";
            }
        }
    }
    return View();
}
[HttpPost]
public async Task<IActionResult> ScanBarcode(IFormFile barcodeFile)
{
    if (barcodeFile != null && barcodeFile.Length > 0)
    {
        using (var stream = new MemoryStream())
        {
            await barcodeFile.CopyToAsync(stream);
            stream.Position = 0;
            // Read barcode from the uploaded image
            var results = BarcodeReader.Read(stream);
            if (results.Any())
            {
                ViewBag.BarcodeResult = string.Join(", ", 
                    results.Select(r => $"{r.BarcodeType}: {r.Text}"));
            }
            else
            {
                ViewBag.BarcodeResult = "No barcodes found in the image.";
            }
        }
    }
    return View();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette implémentation traite le fichier téléchargé en le copiant dans un flux de mémoire, puis en utilisant la méthode BarcodeReader.Read d'IronBarcode pour extraire tous les codes-barres de l'image. La méthode détecte automatiquement le format du code-barres et renvoie des résultats détaillés, y compris le type de code-barres et le texte décodé. IronBarcode processes various image formats, including JPEG, PNG, GIF, TIFF, BMP, and even PDF documents, eliminating the need for format-specific handling code. Cette polyvalence le rend idéal pour les scénarios de traitement de documents discutés dans les fils de discussion d'implémentation de code-barres de Stack Overflow.

Image d'exemple

Comment scanner des codes-barres dans une application ASP.NET : Figure 8 - Code128 prêt pour la numérisation

Sortie

Comment scanner des codes-barres dans une application ASP.NET : Figure 5 - Sortie de code avec type de code-barres et texte

Comment construire une API REST pour la numérisation de codes-barres ou de QR Codes ?

Les applications web ASP.NET modernes requièrent souvent des capacités de numérisation de code-barres exposées via des API REST, permettant l'intégration avec des applications mobiles, des SPA ou des services tiers. Voici comment créer une API de lecteur de code-barres robuste utilisant ASP.NET Core :

[ApiController]
[Route("api/[controller]")]
public class BarcodeController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult ScanBarcode([FromBody] BarcodeRequest request)
    {
        try
        {
            // Convert base64 string to byte array
            byte[] imageBytes = Convert.FromBase64String(request.ImageBase64);
            // Read barcodes from the image
            var results = BarcodeReader.Read(imageBytes);
            var response = results.Select(r => new 
            {
                type = r.BarcodeType.ToString(),
                value = r.Text,
                position = new { x = r.Points.Select(b => b.X).Min(), y= r.Points.Select(b => b.Y).Min(), r.Width, r.Height }
            }).ToList();
            return Ok(new { success = true, barcodes = response });
        }
        catch (Exception ex)
        {
            return BadRequest(new { success = false, error = ex.Message });
        }
    }
}
public class BarcodeRequest
{
    public string ImageBase64 { get; set; }
}
[ApiController]
[Route("api/[controller]")]
public class BarcodeController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult ScanBarcode([FromBody] BarcodeRequest request)
    {
        try
        {
            // Convert base64 string to byte array
            byte[] imageBytes = Convert.FromBase64String(request.ImageBase64);
            // Read barcodes from the image
            var results = BarcodeReader.Read(imageBytes);
            var response = results.Select(r => new 
            {
                type = r.BarcodeType.ToString(),
                value = r.Text,
                position = new { x = r.Points.Select(b => b.X).Min(), y= r.Points.Select(b => b.Y).Min(), r.Width, r.Height }
            }).ToList();
            return Ok(new { success = true, barcodes = response });
        }
        catch (Exception ex)
        {
            return BadRequest(new { success = false, error = ex.Message });
        }
    }
}
public class BarcodeRequest
{
    public string ImageBase64 { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce point de terminaison API de lecteur de code-barres accepte des images encodées en base64, un format standard pour transmettre des images sur HTTP. La réponse inclut la valeur du code-barres et son type. L'implémentation suit les meilleures pratiques RESTful, assurant une intégration transparente avec tout framework frontend.

Le code JavaScript suivant est utilisé pour consommer cette API depuis un client JavaScript :

async function scanBarcode(imageFile) {
    const base64 = await convertToBase64(imageFile);
    const response = await fetch('/api/barcode/scan', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ imageBase64: base64 })
    });
    const result = await response.json();
    console.log('Scanned barcodes:', result.barcodes);
}
 async function convertToBase64(file) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.onload = () => {
            // Remove the data URL prefix to get only the base64 string
            const base64 = reader.result.split(',')[1];
            resolve(base64);
        };
        reader.onerror = error => reject(error);
        reader.readAsDataURL(file);
    });
}
async function scanBarcode(imageFile) {
    const base64 = await convertToBase64(imageFile);
    const response = await fetch('/api/barcode/scan', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ imageBase64: base64 })
    });
    const result = await response.json();
    console.log('Scanned barcodes:', result.barcodes);
}
 async function convertToBase64(file) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.onload = () => {
            // Remove the data URL prefix to get only the base64 string
            const base64 = reader.result.split(',')[1];
            resolve(base64);
        };
        reader.onerror = error => reject(error);
        reader.readAsDataURL(file);
    });
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette approche API permet une intégration transparente avec les frameworks JavaScript modernes, les applications mobiles, et prend en charge les scénarios où la numérisation de code-barres doit se faire de manière asynchrone ou par opérations par lots.

Entrée d'exemple

Comment scanner des codes-barres dans une application ASP.NET : Figure 6 -  Plusieurs codes-barres

Sortie

Comment scanner des codes-barres dans une application ASP.NET : Figure 7 - Réponse de l'API

Comment traiter des images de code-barres difficiles ?

La numérisation de codes-barres du monde réel dans les applications web ASP.NET implique souvent des images imparfaites : photos prises sous des angles, mauvaises conditions d'éclairage ou codes-barres partiellement endommagés. IronBarcode excelle dans ces scénarios grâce à ses capacités avancées de traitement d'image :

var options = new BarcodeReaderOptions
{
    // Balance speed vs accuracy
    Speed = ReadingSpeed.Balanced,
    // Specify expected barcode types for better performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Enable automatic rotation correction
    AutoRotate = true,
    // Apply image filters for clarity
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.5f)
    },
    // Use multiple threads for faster processing
    Multithreaded = true
};
var results = BarcodeReader.Read("challenging-image.jpg", options);
var options = new BarcodeReaderOptions
{
    // Balance speed vs accuracy
    Speed = ReadingSpeed.Balanced,
    // Specify expected barcode types for better performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Enable automatic rotation correction
    AutoRotate = true,
    // Apply image filters for clarity
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.5f)
    },
    // Use multiple threads for faster processing
    Multithreaded = true
};
var results = BarcodeReader.Read("challenging-image.jpg", options);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La classe BarcodeReaderOptions offre un contrôle granulaire sur le processus de numérisation de code-barres. En réglant AutoRotate sur vrai, on gère les images capturées sous n'importe quel angle, tandis que les filtres d'image améliorent la clarté pour les codes-barres flous ou à faible contraste. La propriété Speed vous permet de trouver un équilibre entre la vitesse de traitement et la précision selon les exigences spécifiques de votre application ASP.NET. Pour un traitement à haut volume, activer le multithreading améliore considérablement les performances en utilisant tous les cœurs CPU disponibles. Cette approche est en ligne avec les meilleures pratiques de l'industrie pour le traitement d'image dans les applications .NET.

Conclusion et meilleures pratiques

Implémenter la numérisation de code-barres dans les applications web ASP.NET avec IronBarcode transforme une tâche potentiellement complexe en code simple et maintenable. La capacité de la bibliothèque à gérer plusieurs formats, traiter des images imparfaites, décoder des codes-barres et fournir des résultats cohérents sur les plateformes en fait un outil inestimable pour les applications d'entreprise.

Pour les déploiements en production, n'oubliez pas d'implémenter une gestion des erreurs appropriée, de valider les fichiers téléchargés pour la sécurité, et de considérer la mise en cache des codes-barres fréquemment numérisés. Le support multiplateforme d'IronBarcode garantit que votre solution de lecteur de code-barres fonctionne sans heurts dans les conteneurs Docker et les environnements cloud, offrant la flexibilité exigée par les applications modernes. Explore the complete API documentation to discover advanced features like batch processing and PDF barcode extraction.

Prêt à révolutionner votre application ASP.NET avec la numérisation de code-barres professionnelle ? Commencez votre essai gratuit pour débloquer tout le potentiel d'IronBarcode dans votre environnement de production.

Questions Fréquemment Posées

Quelle est l'utilisation principale de la numérisation de codes-barres dans les applications ASP.NET ?

La numérisation de codes-barres dans les applications ASP.NET est principalement utilisée pour améliorer les systèmes de gestion des stocks, traiter les billets lors d'événements et numériser les documents papier, améliorant ainsi l'efficacité et réduisant les erreurs.

Comment IronBarcode facilite-t-il la numérisation de codes-barres dans ASP.NET ?

IronBarcode simplifie le processus de numérisation de codes-barres dans ASP.NET en fournissant des composants fiables et efficaces qui peuvent être facilement intégrés dans des applications web, permettant aux développeurs de mettre rapidement en œuvre des fonctionnalités de numérisation.

Quels types de codes-barres peuvent être numérisés avec IronBarcode ?

IronBarcode prend en charge la numérisation d'une grande variété de formats de codes-barres, y compris les codes-barres linéaires traditionnels et les codes-barres 2D modernes, garantissant la compatibilité avec des applications diverses.

IronBarcode peut-il gérer la numérisation de codes-barres pour le traitement de documents ?

Oui, IronBarcode est bien adapté aux flux de traitement de documents, où il peut être utilisé pour numériser et organiser des documents papier en scannant les codes-barres intégrés.

IronBarcode est-il adapté aux systèmes de gestion des stocks ?

IronBarcode est un excellent choix pour les systèmes de gestion des stocks, car il permet un suivi efficace des produits en scannant les codes-barres, simplifiant ainsi les opérations et minimisant les erreurs.

Comment l'intégration d'IronBarcode améliore-t-elle le traitement des billets d'événement ?

En intégrant IronBarcode, le traitement des billets d'événement devient fluide car il permet une numérisation rapide des codes-barres des billets, facilitant une gestion d'entrée rapide et précise lors des événements.

Quels sont les avantages de l'utilisation d'IronBarcode dans les projets ASP.NET ?

L'utilisation d'IronBarcode dans les projets ASP.NET offre plusieurs avantages, notamment la facilité d'intégration, la prise en charge de multiples formats de codes-barres et l'amélioration des performances de l'application, offrant ainsi une solution robuste pour les besoins de numérisation de codes-barres.

IronBarcode nécessite-t-il des connaissances approfondies en codage pour être mis en œuvre ?

Non, IronBarcode est conçu pour être convivial pour les développeurs, rendant facile la mise en œuvre de la fonctionnalité de numérisation de codes-barres dans les applications ASP.NET avec des connaissances minimales en codage.

IronBarcode peut-il être utilisé pour les applications web mobiles ?

Oui, IronBarcode peut être intégré dans des applications web mobiles, permettant la numérisation de codes-barres en déplacement et améliorant la polyvalence des projets ASP.NET.

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