USO DE IRONBARCODE

Uso de un SDK de lector de código de barras para .NET

Jordi Bardia
Jordi Bardia
3 de abril, 2025
Compartir:

La lectura de códigos de barras es una característica esencial para muchas aplicaciones, desde la gestión de inventario hasta el comercio minorista y la logística. Al integrar la lectura de códigos de barras en sus aplicaciones .NET, puede optimizar la captura de datos, automatizar flujos de trabajo y mejorar la eficiencia.

IronBarcode es una potente biblioteca .NET que hace que trabajar con códigos de barras sea sencillo. Con esta herramienta, puedes leer códigos de barras de imágenes, flujos y archivos PDF, así como generar códigos QR. Este artículo le mostrará cómo integrar el escaneo de códigos de barras en su aplicación .NET, centrándose en crear una integración de API o aplicación web para exponer la funcionalidad de escaneo de códigos de barras.

Mejores casos de uso para la integración de IronBarcode

IronBarcode es ideal para:

  • Sistemas de gestión de inventario – Automatizar el escaneo de códigos de barras para rastrear productos y niveles de stock.
  • Aplicaciones de logística – Procesa imágenes de códigos de barras escaneadas para envío, recepción y seguimiento de paquetes.
  • Sistemas POS de venta al por menor – Validar escaneos de códigos de barras para transacciones de ventas y consultas de precios.
  • Procesamiento de documentos – Extraiga datos de códigos de barras de facturas PDF, recibos o tarjetas de identificación.

Cómo crear un SDK de lector de códigos de barras en .NET

Para crear un lector de códigos de barras que pueda exponerse como un servicio en su aplicación, integrará IronBarcode en una API REST o aplicación web. A continuación, se muestra un ejemplo de cómo hacerlo utilizando ASP.NET Core.

  1. Instala la biblioteca .NET para leer códigos de barras en C#

  2. Crea una clase reutilizable para escanear códigos de barras.

  3. Desarrollar métodos para leer códigos de barras de diferentes fuentes.

  4. Integre la lectura de imágenes de códigos de barras en su aplicación.

  5. Pruebe y optimice el rendimiento.

Antes de empezar

Si aún no lo has hecho, descarga IronBarcode para tu proyecto. Asegúrese de tener la clave de licencia adecuada para su uso previsto. Tenga en cuenta que exponer la funcionalidad de IronBarcode a través de una API pública o revenderla como un servicio independiente requiere licencias adicionales (SDK, OEM o SaaS). Asegúrate de comprender las consideraciones de licenciamiento antes de continuar.

Creación de una Clase de Escáner de Código de Barras

Una vez que hayas configurado IronBarcode e instalado en tu proyecto, puedes crear una clase de escáner de códigos de barras reutilizable que integre la funcionalidad de IronBarcode y la exponga como un punto de acceso de 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

Esta clase BarcodeScanner abstrae la funcionalidad de IronBarcode, facilitando su integración en cualquier aplicación .NET. Veamos un desglose de los diferentes métodos incluidos aquí:

Métodos para leer códigos de barras

Cada uno de los siguientes métodos intenta leer un código de barras de diferentes tipos de entrada:

  • ReadBarcodeFromImage(string imagePath): Lee un código de barras de un archivo de imagen.
  • ReadBarcodeFromStream(Stream inputStream): Lee un código de barras desde un flujo de entrada (por ejemplo, carga de archivos o flujo de memoria).
  • ReadBarcodeFromPdf(string filePath): Lee un código de barras de un archivo PDF.

    Cada método intenta leer los datos del código de barras y devuelve la cadena del código de barras o un mensaje de error si no se encuentra un código de barras o si ocurre una excepción.

Exponiendo la lectura de códigos de barras a través de una API REST

Para permitir que las aplicaciones externas utilicen su funcionalidad de escaneo de códigos de barras, puede exponerla como una API REST usando ASP.NET Core. A continuación se muestra un ejemplo de cómo podrías hacer esto:

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

Uso de un Barcode Reader SDK para .NET: Figura 1

Añadir desde PixabaySubir

o arrastre y suelte una imagen aquí

Agregar texto alternativo de la imagen

Salida

Usando un Barcode Reader SDK para .NET: Figura 2

Añadir desde PixabaySubir

o arrastre y suelte una imagen aquí

Agregar texto alternativo de la imagen

Esta API expone un endpoint POST donde se pueden cargar imágenes de códigos de barras, y la API devolverá los datos del código de barras. Esto permite que otros sistemas o aplicaciones front-end interactúen con su escáner de código de barras como un servicio.

Funciones avanzadas

Para mejorar aún más el SDK, considere agregar:

  1. Soporte para múltiples tipos de códigos de barras: IronBarcode admite la capacidad de leer varios códigos de barras. Puedes agregar opciones para configurar tu SDK para aceptar múltiples códigos de barras a la vez. Por ejemplo:
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
  1. Manejo de Errores: Expanda el manejo de errores y el registro para proporcionar un mejor diagnóstico a sus usuarios del SDK.

  2. Procesamiento por lotes: Si deseas procesar múltiples códigos de barras de una colección de imágenes, puedes crear métodos que reciban un arreglo de imágenes o flujos.

  3. Personalización: Ofrecer opciones de configuración para los parámetros de detección de códigos de barras, como precisión, velocidad y tipos de códigos de barras compatibles.

Consideraciones de Licencia

Como se mencionó anteriormente, el SDK de IronBarcode está destinado a la integración en sus aplicaciones internas, y exponerlo a través de una API requiere una licencia adicional. Debe asegurarse de obtener la licencia necesaria (SDK, OEM o SaaS) antes de exponer IronBarcode como parte de un servicio, como una API pública.

No revenda IronBarcode como un SDK independiente ni lo exponga a través de una API de cara al público sin asegurarse de que su licencia cubra este uso.

Prueba IronBarcode gratis hoy

Experimenta el poder innovador de IronBarcode. Prueba nuestra versión de prueba gratuita y descubre la generación, lectura y edición de códigos de barras sin inconvenientes para tus aplicaciones .NET. Con funciones avanzadas, un rendimiento excepcional y una interfaz fácil de usar, IronBarcode es la solución definitiva para todas tus necesidades de código de barras. Comience su prueba gratuita hoy y eleve sus proyectos.

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 en las pruebas de productos, el desarrollo de productos y la investigación, Jordi añade un inmenso valor a la mejora continua de los productos. La variada experiencia le mantiene desafiado y comprometido, y dice que es uno de sus aspectos favoritos de trabajar con Iron Software. Jordi creció en Miami, Florida, y estudió Informática y Estadística en la Universidad de Florida.
SIGUIENTE >
Cómo leer múltiples códigos de barras con IronBarcode: Resumen de la demostración en vivo