Saltar al pie de página
USO DE IRONBARCODE

SDK de Lector de Códigos de Barras para .NET

Barcode scanning is an essential feature for many applications, from inventory management to retail and logistics. By integrating barcode reading into your .NET applications, you can streamline data capture, automate workflows, and improve efficiency.

IronBarcode is a powerful .NET library that makes working with barcodes simple. With this tool, you can read barcodes from images, streams, and PDF files, as well as generate QR codes. This article will show you how to integrate barcode scanning into your .NET application, focusing on creating an API or Web App integration to expose barcode scanning functionality.

Best Use Cases for IronBarcode Integration

IronBarcode is ideal for:

  • Inventory management systems – Automate barcode scanning to track products and stock levels.
  • Logistics applications – Process scanned barcode images for shipping, receiving, and package tracking.
  • Retail POS systems – Validate barcode scans for sales transactions and price lookups.
  • Document processing – Extract barcode data from PDF invoices, receipts, or ID cards.

How to Create a Barcode Reader SDK in .NET

To create a barcode reader that can be exposed as a service in your application, you will integrate IronBarcode into a REST API or Web App. Below is an example of how to do this using ASP.NET Core.

  1. Install the .NET library for reading barcodes in C#
  2. Create a reusable barcode scanning class.
  3. Develop methods for reading barcodes from different sources.
  4. Integrate barcode image reading into your application.
  5. Test and optimize performance.

Before We Start

If you haven’t already, download IronBarcode for your project. Make sure you have the proper license key for your intended use. Note that exposing IronBarcode’s functionality via a public API or reselling it as a standalone service requires additional licensing (SDK, OEM, or SaaS). Ensure you understand the licensing considerations before proceeding.

Creating a Barcode Scanner Class

Once you have set up IronBarcode and installed it in your project, you can create a reusable barcode scanner class that integrates IronBarcode’s functionality and exposes it as an API endpoint.

using IronBarCode;
using System.IO;

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

        // Method to read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath);
                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 string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                // Try to read the barcode from the given stream
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                // Try to read the barcode from the given PDF file path
                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";
        }

        // Method to read a barcode from an image file
        public string ReadBarcodeFromImage(string imagePath)
        {
            try
            {
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath);
                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 string ReadBarcodeFromStream(Stream inputStream)
        {
            try
            {
                // Try to read the barcode from the given stream
                var barcode = BarcodeReader.Read(inputStream);
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file
        public string ReadBarcodeFromPdf(string filePath)
        {
            try
            {
                // Try to read the barcode from the given PDF file path
                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

		' Method to read a barcode from an image file
		Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
			Try
				' Try to read the barcode from the given image path
				Dim barcode = BarcodeReader.Read(imagePath)
				Return If(barcode?.ToString(), "No Barcode Found") ' Return the barcode string or indicate no barcode was found
			Catch ex As Exception
				' Return an error message if an exception occurs
				Return $"Error reading barcode: {ex.Message}"
			End Try
		End Function

		' Method to read a barcode from a stream (e.g., file upload or memory stream)
		Public Function ReadBarcodeFromStream(ByVal inputStream As Stream) As String
			Try
				' Try to read the barcode from the given stream
				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

		' Method to read a barcode from a PDF file
		Public Function ReadBarcodeFromPdf(ByVal filePath As String) As String
			Try
				' Try to read the barcode from the given PDF file path
				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

This BarcodeScanner class abstracts IronBarcode’s functionality, making it easy to integrate into any .NET application. Let's look at a breakdown of the different methods included here:

Methods to Read Barcodes

Each of the following methods attempts to read a barcode from different types of input:

  • ReadBarcodeFromImage(string imagePath): Reads a barcode from an image file.
  • ReadBarcodeFromStream(Stream inputStream): Reads a barcode from an input stream (e.g., file upload or memory stream).
  • ReadBarcodeFromPdf(string filePath): Reads a barcode from a PDF file.

Each method attempts to read the barcode data and returns the barcode string or an error message if no barcode is found or an exception occurs.

Exposing Barcode Reading via a REST API

To allow external applications to use your barcode scanning functionality, you can expose it as a REST API using ASP.NET Core. Below is an example of how you might do this:

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;

    public BarcodeController()
    {
        // Initialize the BarcodeScanner class
        _barcodeScanner = new BarcodeScanner();
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result }); // Return the barcode reading result
    }
}
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;

    public BarcodeController()
    {
        // Initialize the BarcodeScanner class
        _barcodeScanner = new BarcodeScanner();
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public IActionResult ReadFromImage(IFormFile file)
    {
        using var stream = file.OpenReadStream();
        var result = _barcodeScanner.ReadBarcodeFromStream(stream);
        return Ok(new { Barcode = result }); // Return the barcode reading result
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcodeIntegration

<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
	Inherits ControllerBase

	Private ReadOnly _barcodeScanner As BarcodeScanner

	Public Sub New()
		' Initialize the BarcodeScanner class
		_barcodeScanner = New BarcodeScanner()
	End Sub

	' POST endpoint to read barcode from an uploaded image
	<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}) ' Return the barcode reading result
	End Function
End Class
$vbLabelText   $csharpLabel

Swagger UI

Using a Barcode Reader SDK for .NET: Figure 1

Output

Using a Barcode Reader SDK for .NET: Figure 2

This API exposes a POST endpoint where barcode images can be uploaded, and the API will return the barcode data. This allows other systems or front-end applications to interact with your barcode scanner as a service.

Advanced Features

To further enhance the SDK, consider adding:

  1. Support for Multiple Barcode Types: IronBarcode supports the ability to read multiple barcodes. You can add options to configure your SDK to accept multiple barcodes at once. For example:

    public string ReadBarcodeFromImage(string imagePath)
    {
        try
        {
            BarcodeReaderOptions options = new BarcodeReaderOptions()
            {
                ExpectMultipleBarcodes = true,
                ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
            };
            foreach (var barcode in BarcodeReader.Read(imagePath, options))
            {
                return barcode.ToString();
            }
            return "No barcode found";
        }
        catch (Exception ex)
        {
            return $"Error reading barcode: {ex.Message}";
        }
    }
    public string ReadBarcodeFromImage(string imagePath)
    {
        try
        {
            BarcodeReaderOptions options = new BarcodeReaderOptions()
            {
                ExpectMultipleBarcodes = true,
                ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
            };
            foreach (var barcode in BarcodeReader.Read(imagePath, options))
            {
                return barcode.ToString();
            }
            return "No barcode found";
        }
        catch (Exception ex)
        {
            return $"Error reading barcode: {ex.Message}";
        }
    }
    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
  2. Error Handling: Expand error handling and logging to provide better diagnostics for your SDK users.
  3. Batch Processing: If you want to process multiple barcodes from a collection of images, you can create methods that take in an array of images or streams.
  4. Customization: Offer configuration options for barcode detection parameters, such as accuracy, speed, and supported barcode types.

Licensing Considerations

As mentioned earlier, the IronBarcode SDK is meant for integration into your internal applications, and exposing it through an API requires additional licensing. You must secure the necessary licensing (SDK, OEM, or SaaS) before exposing IronBarcode as part of a service, such as a public API.

Do not resell IronBarcode as a standalone SDK or expose it via a public-facing API without ensuring that your licensing covers this usage.

Try IronBarcode Free Today

Experience the innovative power of IronBarcode. Try our free trial and discover seamless barcode generation, reading, and editing for your .NET applications. With advanced features, exceptional performance, and a user-friendly interface, IronBarcode is the ultimate solution for all your barcode needs. Start your free trial today and elevate your projects.

Preguntas Frecuentes

¿Cómo puedo integrar un lector de códigos de barras en una aplicación .NET?

Puede integrar un lector de códigos de barras en una aplicación .NET utilizando la biblioteca IronBarcode. Primero, instale IronBarcode, luego cree una clase para escanear códigos de barras e implemente métodos para leer códigos de barras de imágenes, flujos y PDFs. Finalmente, pruebe y optimice su configuración.

¿Cómo expongo la funcionalidad de lectura de códigos de barras como una API REST?

Para exponer la funcionalidad de lectura de códigos de barras como una API REST, use ASP.NET Core para crear una aplicación web. Incorpore la biblioteca IronBarcode, desarrolle una clase BarcodeScanner y defina endpoints API que lean códigos de barras usando métodos como ReadBarcodeFromImage y ReadBarcodeFromStream.

¿Qué tipos de códigos se pueden leer con una biblioteca .NET?

Una biblioteca de códigos de barras .NET como IronBarcode puede leer varios tipos de códigos de barras, incluidos códigos QR, Code 128, UPC y EAN. Puede configurar la biblioteca para detectar múltiples tipos de códigos de barras simultáneamente estableciendo parámetros de detección.

¿Cómo puedo manejar errores al leer códigos de barras en .NET?

Manejar errores en la lectura de códigos de barras se puede lograr implementando un manejo de errores robusto dentro de sus métodos de escaneo de códigos de barras usando IronBarcode. Asegúrese de capturar excepciones y proporcionar retroalimentación significativa o mecanismos de reintento para mejorar la confiabilidad del proceso de lectura de códigos de barras.

¿Cuáles son los requisitos de licencia para usar una biblioteca de códigos de barras .NET en una API pública?

Al usar IronBarcode en una API pública, debe asegurar la licencia adecuada. Esto incluye obtener licencias SDK, OEM o SaaS, ya que exponer la funcionalidad de la biblioteca como un servicio independiente o API pública requiere permisos adicionales.

¿Puedo procesar escaneos de múltiples códigos de barras en lote usando una biblioteca .NET?

Sí, puede procesar escaneos de múltiples códigos de barras en lote usando IronBarcode. La biblioteca le permite leer múltiples códigos de barras en una sola operación, lo cual puede ser particularmente útil para procesar grandes conjuntos de imágenes o documentos eficientemente.

¿Hay una versión de prueba disponible para una biblioteca de códigos de barras .NET?

Sí, IronBarcode ofrece una versión de prueba gratuita que le permite explorar sus capacidades en la generación, lectura y edición de códigos de barras en aplicaciones .NET. Esta prueba puede ayudarle a evaluar la biblioteca antes de tomar una decisión de compra.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más