using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Kit de développement logiciel de lecteur de code-barres .NET
UTILISATION D'IRONBARCODE
Utilisation d'un SDK de lecteur de code-barres pour .NET
Jordi Bardia
avril 3, 2025
Partager:
La numérisation de codes-barres est une fonctionnalité essentielle pour de nombreuses applications, allant de la gestion des stocks au commerce de détail et à la logistique. En intégrant la lecture de codes-barres dans vos applications .NET, vous pouvez rationaliser la capture de données, automatiser les flux de travail et améliorer l'efficacité.
IronBarcode est une bibliothèque .NET puissante qui simplifie le travail avec les codes-barres. Avec cet outil, vous pouvez lire les codes-barres à partir d'images, de flux, et de fichiers PDF, ainsi que générer des codes QR. Cet article vous montrera comment intégrer la numérisation de codes-barres dans votre application .NET, en mettant l'accent sur la création d'une intégration API ou d'une application Web pour exposer la fonctionnalité de numérisation de codes-barres.
Meilleurs cas d'utilisation pour l'intégration d'IronBarcode
IronBarcode est idéal pour :
✔ Systèmes de gestion des stocks – Automatisez le balayage des codes-barres pour suivre les produits et les niveaux de stock.
✔ Applications logistiques – Traitez les images de codes-barres numérisées pour l'expédition, la réception et le suivi des colis.
✔ Systèmes de point de vente au détail – Valider les scans de codes-barres pour les transactions de vente et les recherches de prix.
✔ Traitement de documents – Extraire les données de code-barres des factures PDF, des reçus ou des cartes d'identité.
Comment créer un SDK de lecteur de code-barres en .NET
Pour créer un lecteur de code-barres pouvant être exposé en tant que service dans votre application, vous intégrerez IronBarcode dans une API REST ou une application Web. Voici un exemple de comment faire ceci en utilisant ASP.NET Core.
Créer une classe de numérisation de codes-barres réutilisable.
Développer des méthodes pour lire les codes-barres à partir de différentes sources.
Intégrez la lecture d'images de codes-barres dans votre application.
Tester et optimiser les performances.
Avant de commencer
Si vous ne l'avez pas encore fait, téléchargez IronBarcode pour votre projet. Assurez-vous d'avoir la clé de licence appropriée pour votre utilisation prévue. Notez que l'exposition des fonctionnalités d'IronBarcode via une API publique ou la revente en tant que service indépendant nécessite une licence supplémentaire (SDK, OEM ou SaaS). Assurez-vous de comprendre les considérations de licence avant de continuer.
Création d'une classe de scanner de code-barres
Une fois que vous avez configuré IronBarcode et l'avez installé dans votre projet, vous pouvez créer une classe de scanner de codes-barres réutilisable qui intègre la fonctionnalité de IronBarcode et l'expose en tant que point de terminaison d'API.
using IronBarCode;
using System.IO;
namespace BarcodeIntegration
{
public class BarcodeScanner
{
static BarcodeScanner()
{
// Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key";
}
// Read a barcode from an image file
public string ReadBarcodeFromImage(string imagePath)
{
try
{
var barcode = BarcodeReader.Read(imagePath);
return barcode?.ToString() ?? "No Barcode Found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a stream (e.g., file upload or memory stream)
public string ReadBarcodeFromStream(Stream inputStream)
{
try
{
var barcode = BarcodeReader.Read(inputStream);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a PDF file
public string ReadBarcodeFromPdf(string filePath)
{
try
{
var barcode = BarcodeReader.ReadPdf(filePath);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
}
}
using IronBarCode;
using System.IO;
namespace BarcodeIntegration
{
public class BarcodeScanner
{
static BarcodeScanner()
{
// Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key";
}
// Read a barcode from an image file
public string ReadBarcodeFromImage(string imagePath)
{
try
{
var barcode = BarcodeReader.Read(imagePath);
return barcode?.ToString() ?? "No Barcode Found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a stream (e.g., file upload or memory stream)
public string ReadBarcodeFromStream(Stream inputStream)
{
try
{
var barcode = BarcodeReader.Read(inputStream);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a PDF file
public string ReadBarcodeFromPdf(string filePath)
{
try
{
var barcode = BarcodeReader.ReadPdf(filePath);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
}
}
Imports IronBarCode
Imports System.IO
Namespace BarcodeIntegration
Public Class BarcodeScanner
Shared Sub New()
' Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key"
End Sub
' Read a barcode from an image file
Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
Try
Dim barcode = BarcodeReader.Read(imagePath)
Return If(barcode?.ToString(), "No Barcode Found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
' Read a barcode from a stream (e.g., file upload or memory stream)
Public Function ReadBarcodeFromStream(ByVal inputStream As Stream) As String
Try
Dim barcode = BarcodeReader.Read(inputStream)
Return If(barcode?.ToString(), "No barcode found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
' Read a barcode from a PDF file
Public Function ReadBarcodeFromPdf(ByVal filePath As String) As String
Try
Dim barcode = BarcodeReader.ReadPdf(filePath)
Return If(barcode?.ToString(), "No barcode found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
End Class
End Namespace
$vbLabelText $csharpLabel
Cette classe BarcodeScanner abstrait la fonctionnalité d'IronBarcode, la rendant facile à intégrer dans toute application .NET. Examinons une répartition des différentes méthodes incluses ici :
Méthodes pour lire les codes-barres
Chacune des méthodes suivantes tente de lire un code-barres à partir de différents types d'entrée :
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 téléchargement de fichier ou un flux mémoire).
ReadBarcodeFromPdf(string filePath) : Lit un code-barres à partir d'un fichier PDF.
Chaque méthode tente de lire les données du code-barres et renvoie la chaîne du code-barres ou un message d'erreur si aucun code-barres n'est trouvé ou en cas d'exception.
Exposer la lecture de codes-barres via une API REST
Pour permettre aux applications externes d'utiliser votre fonctionnalité de lecture de codes-barres, vous pouvez l'exposer en tant qu'API REST en utilisant ASP.NET Core. Voici un exemple de la façon dont vous pourriez faire cela :
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
private readonly BarcodeScanner _barcodeScanner;
public BarcodeController()
{
_barcodeScanner = new BarcodeScanner();
}
[HttpPost("read-from-image")]
public IActionResult ReadFromImage(IFormFile file)
{
using var stream = file.OpenReadStream();
var result = _barcodeScanner.ReadBarcodeFromStream(stream);
return Ok(new { Barcode = result });
}
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
private readonly BarcodeScanner _barcodeScanner;
public BarcodeController()
{
_barcodeScanner = new BarcodeScanner();
}
[HttpPost("read-from-image")]
public IActionResult ReadFromImage(IFormFile file)
{
using var stream = file.OpenReadStream();
var result = _barcodeScanner.ReadBarcodeFromStream(stream);
return Ok(new { Barcode = result });
}
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcoderReader
<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
Inherits ControllerBase
Private ReadOnly _barcodeScanner As BarcodeScanner
Public Sub New()
_barcodeScanner = New BarcodeScanner()
End Sub
<HttpPost("read-from-image")>
Public Function ReadFromImage(ByVal file As IFormFile) As IActionResult
Dim stream = file.OpenReadStream()
Dim result = _barcodeScanner.ReadBarcodeFromStream(stream)
Return Ok(New With {Key .Barcode = result})
End Function
End Class
$vbLabelText $csharpLabel
Swagger UI
Ajouter depuis PixabayTéléverser
ou faites glisser et déposez une image ici
Ajouter un texte alternatif à l'image
Sortie
Ajouter depuis PixabayTéléverser
ou faites glisser et déposez une image ici
Ajouter un texte alternatif à l'image
Cette API expose un point de terminaison POST où des images de code-barres peuvent être téléchargées, et l'API retournera les données du code-barres. Cela permet à d'autres systèmes ou applications frontales d'interagir avec votre scanner de codes-barres en tant que service.
Fonctionnalités avancées
Pour améliorer davantage le SDK, envisagez d'ajouter :
Prise en charge de plusieurs types de codes-barres : IronBarcode prend en charge la lecture de plusieurs codes-barres. Vous pouvez ajouter des options pour configurer votre SDK afin d'accepter plusieurs codes-barres à la fois. Par exemple :
Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
Try
Dim options As New BarcodeReaderOptions() With {
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}
For Each barcode In BarcodeReader.Read(imagePath, options)
Return barcode.ToString()
Next barcode
Return "No barcode found"
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
$vbLabelText $csharpLabel
Gestion des erreurs : Étendez la gestion des erreurs et la journalisation pour offrir de meilleurs diagnostics à vos utilisateurs de SDK.
Traitement par lots : Si vous souhaitez traiter plusieurs codes-barres à partir d'une collection d'images, vous pouvez créer des méthodes qui acceptent un tableau d'images ou de flux.
Personnalisation : Offrez des options de configuration pour les paramètres de détection des codes-barres, tels que la précision, la vitesse et les types de codes-barres pris en charge.
Considérations relatives aux licences
Comme mentionné précédemment, le SDK IronBarcode est destiné à être intégré dans vos applications internes, et l'exposer via une API nécessite une licence supplémentaire. Vous devez obtenir la licence nécessaire (SDK, OEM ou SaaS) avant d'exposer IronBarcode dans le cadre d'un service, tel qu'une API publique.
Ne revendez pas IronBarcode en tant que SDK autonome ou ne l'exposez pas via une API publique sans vous assurer que votre licence couvre cet usage.
Essayez IronBarcode gratuitement aujourd'hui
Découvrez la puissance innovante d'IronBarcode. Essayez notre version d'essai gratuite et découvrez la génération, la lecture et l'édition de codes-barres sans faille 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 codes-barres. Commencez votre essai gratuit dès aujourd'hui et améliorez vos projets.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
SUIVANT > Comment lire plusieurs codes-barres avec IronBarcode : Récapitulatif de la démo en direct
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier