Saltar al pie de página
USO DE IRONBARCODE

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

El escaneo de códigos de barras es una función 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 facilita el trabajo con códigos de barras. Con esta herramienta, puede leer códigos de barras de imágenes, secuencias de datos y archivos PDF, así como generar códigos QR. Este artículo le mostrará cómo integrar la lectura 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 – Automatice el escaneo de códigos de barras para rastrear productos y niveles de stock.
  • Aplicaciones de logística – Procese imágenes de códigos de barras escaneadas para envíos, recepción y seguimiento de paquetes.
  • Sistemas POS minoristas – Valide el escaneo 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ódigo 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 hacer esto utilizando ASP.NET Core.

  1. Instale la biblioteca .NET para leer códigos de barras en C#
  2. Cree una clase de escaneo de códigos de barras reutilizable.
  3. Desarrolle métodos para leer códigos de barras desde 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 ha hecho, descargue IronBarcode para su proyecto. Asegúrese de tener la clave de licencia adecuada para el 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úrese de comprender las consideraciones de licencias antes de continuar.

Creación de una clase de escáner de código de barras

Una vez que haya configurado IronBarcode e instalado en su proyecto, puede 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 API.

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

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 desde 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.

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

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

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

Interfaz de usuario Swagger

Usando un SDK de lector de códigos de barras para .NET: Figura 1

Resultado

Usando un SDK de lector de códigos de barras para .NET: Figura 2

Esta API expone un punto final 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 frontales interactúen con su escáner de códigos de barras como un servicio.

Características 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 múltiples códigos de barras. Puede agregar opciones para configurar su 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
  2. Manejo de errores: Amplíe el manejo de errores y el registro para proporcionar mejores diagnósticos a los usuarios de su SDK.
  3. Procesamiento por lotes: Si desea procesar múltiples códigos de barras de una colección de imágenes, puede crear métodos que reciban un array de imágenes o flujos.
  4. Personalización: Ofrezca 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 soportados.

Consideraciones sobre la licencia

Como se mencionó anteriormente, el SDK de IronBarcode está destinado para la integración en sus aplicaciones internas y exponerlo a través de una API requiere licencias adicionales. Debe asegurar 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 pública sin asegurarse de que su licencia cubra este uso.

Pruebe IronBarcode gratis hoy

Experimente el poderoso e innovador IronBarcode. Pruebe nuestra versión de prueba gratuita y descubra la generación, lectura y edición de códigos de barras sin problemas para sus aplicaciones .NET. Con características avanzadas, un rendimiento excepcional y una interfaz fácil de usar, IronBarcode es la solución definitiva para todas sus necesidades de códigos de barras. Comience su prueba gratuita hoy mismo y eleve sus proyectos.

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