Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
IronBarcode es ideal para:
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.
Instala la biblioteca .NET para leer códigos de barras en C#
Crea una clase reutilizable para escanear códigos de barras.
Desarrollar métodos para leer códigos de barras de diferentes fuentes.
Integre la lectura de imágenes de códigos de barras en su aplicación.
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.
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
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í:
Cada uno de los siguientes métodos intenta leer un código de barras de diferentes tipos de entrada:
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.
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
Añadir desde PixabaySubir
o arrastre y suelte una imagen aquí
Agregar texto alternativo de la imagen
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.
Para mejorar aún más el SDK, considere agregar:
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
Manejo de Errores: Expanda el manejo de errores y el registro para proporcionar un mejor diagnóstico a sus usuarios del SDK.
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.
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.
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.