USO DE IRONBARCODE

Tutorial paso a paso del escáner de código de barras C#

Jordi Bardia
Jordi Bardia
20 de octubre, 2022
Actualizado 7 de febrero, 2024
Compartir:

Este tutorial mostrará cómo crear un escáner de código de barras con la ayuda de una biblioteca de terceros. Existen múltiples bibliotecas para este fin, pero algunas son de pago, otras ofrecen menos funcionalidades y otras son difíciles de implementar. Es todo un reto encontrar una biblioteca muy completa y útil que sea gratuita, eficiente y fácil de implementar.

Por esta razón, utilizaremos IronBarcode, ya que es la mejor opción para desarrollar un escáner de códigos de barras .NET. Además, tiene la ventaja añadida de ser libre para el desarrollo, muy eficaz y fácil de aplicar. IronBarcode permite a los desarrolladores leer y escribir códigos de barras y códigos QR en aplicaciones y sitios web .NET. Leer o escribir códigos de barras sólo requiere una línea de código con esta biblioteca.

La biblioteca de códigos de barras .NET lee y escribe la mayoría de los códigos de barras y códigos QR estándar. Los tipos de códigos de barras compatibles son: código 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expandido, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS y QR. Los datos resultantes del código de barras incluyen archivos de tipo, texto, datos binarios, página e imagen.

La API de escritura de códigos de barras comprueba y verifica el formato, la longitud, el número y la suma de comprobación para evitar automáticamente errores de codificación. El escritor de código de barras permite estilizar, redimensionar, cambiar márgenes, bordes, recolorear y añadir anotaciones de texto. La grabadora de códigos de barras puede escribir en archivos de imagen como BMP, PNG, GIF, TIFF y JPG. También puede escribir en PDF o archivos HTML.

Vamos a crear nuestro escáner de código de barras para entenderlo mejor.

Crear un proyecto de Visual Studio

En primer lugar, cree un proyecto de Visual Studio para desarrollar una aplicación de demostración. También puedes abrir uno ya existente.

Siga los pasos que se indican a continuación para crear un nuevo proyecto de aplicación de consola que se centre en las funcionalidades básicas. El mismo código puede implementarse en aplicaciones web API, MVC, Web Forms o Windows Forms.

  1. Abrir Visual Studio

  2. Haga clic en Crear nuevo proyecto

  3. Seleccione la plantilla, haga clic en el botón Siguiente

  4. Asigne un nombre al proyecto, haga clic en el botón Siguiente

  5. Seleccione el marco de destino, haga clic en el botón Siguiente

  6. Haga clic en el botón Crear, haga clic en el botón Siguiente

    Se creará un nuevo Proyecto como se muestra a continuación:

    Tutorial paso a paso del escáner de código de barras en C#, Figura 1: Aplicación de consola

    Aplicación de consola

    El siguiente paso es instalar el paquete NuGet de IronBarcode para utilizar sus funcionalidades.

Instalar paquete NuGet de IronBarcode

Puedes instalar la biblioteca utilizando la Consola del Administrador de Paquetes, las Soluciones del Administrador de Paquetes NuGet, o instalarla directamente desde la página del paquete NuGet BarCode.

Siga los pasos que se indican a continuación:

  1. Haz clic en Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes.

    Tutorial paso a paso del escáner de códigos de barras C#, Figura 2: Interfaz de la consola del gestor de paquetes

    Interfaz de consola del administrador de paquetes

  2. Escriba el siguiente comando
Install-Package BarCode

Se instalará el paquete.

Ahora vamos a escribir un código para escanear una imagen de código de barras.

Escanear un código de barras desde un archivo de imagen

Añada el siguiente espacio de nombres

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

A continuación, escriba el siguiente código dentro de la función principal para leer los datos del código de barras de una imagen.

var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");
Console.WriteLine(myBarcode);
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")
Console.WriteLine(myBarcode)
$vbLabelText   $csharpLabel

La clase BarcodeReader proporciona una función Read que acepta una ruta de archivo como argumento. Esta función lee la imagen y devuelve los datos del código de barras. Este método lee códigos de barras de un BMP, PNG, GIF, TIFF o JPG con configuraciones granulares para que el desarrollador controle el equilibrio entre el rendimiento y la precisión según su caso de uso específico.

La ruta contiene la siguiente imagen de código de barras que la aplicación escaneará.

Imagen de código de barras

Tutorial paso a paso del escáner de códigos de barras en C#, Figura 3: La imagen del código de barras utilizada en esta aplicación de consola

La imagen del código de barras utilizada en esta aplicación de consola

Leamos esta imagen de código de barras para ver si este programa produce el resultado correcto.

Salida

Tutorial paso a paso del escáner de códigos de barras C#, Figura 4: La salida de la consola al ejecutar la aplicación

La salida de la consola al ejecutar la aplicación

Se puede observar que el programa ha generado un resultado preciso.

Escanear un código de barras desde un PDF

Hay muchas circunstancias en las que es necesario escanear un código de barras de una factura PDF. En este ejemplo, escanearemos el código de barras de la siguiente factura.

Documento PDF

Tutorial paso a paso de escáner de códigos de barras en C#, Figura 5: Una factura en formato PDF

Una factura en formato PDF

Considere el siguiente fragmento de código para escanear el código de barras de un documento PDF:

var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")
For Each barcodeData In myBarcode
	Console.WriteLine(barcodeData.Value)
Next barcodeData
$vbLabelText   $csharpLabel

La clase BarcodeReader proporciona la función ReadPdf que toma una ruta de archivo como argumento. Esta función busca una imagen de código de barras en un archivo PDF, escanea todo el código de barras y devuelve sus datos en forma de matriz. Esta función lee los códigos de barras de cada imagen incrustada en el documento.

un bucle foreach utilizado para imprimir los datos del código de barras en la consola.

Salida

El número de factura se imprime en la consola.

Tutorial paso a paso de escáner de código de barras en C#, Figura 6: La salida de la consola muestra el número de factura

La salida de la consola muestra el número de factura

Escanear códigos de barras de varios archivos

Este ejemplo demostrará cómo escanear varios códigos de barras de archivos de imagen simultáneamente.

Imágenes de códigos de barras

Tutorial paso a paso del escáner de códigos de barras en C#, Figura 7: Imágenes de códigos de barras utilizadas en el ejemplo a continuación

Imágenes de código de barras utilizadas en el ejemplo a continuación

Considere los siguientes fragmentos de código que leen múltiples códigos de barras y escanean su resultado utilizando multithreading.

List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults =  BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
}
List<string> barcodeList = new List<string>();
barcodeList.Add(@"D:\Barcode Images\barcode1.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode2.jpg");
barcodeList.Add(@"D:\Barcode Images\barcode3.jpg");
var batchResults =  BarcodeReader.ReadAsync(barcodeList);
// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
}
Dim barcodeList As New List(Of String)()
barcodeList.Add("D:\Barcode Images\barcode1.jpg")
barcodeList.Add("D:\Barcode Images\barcode2.jpg")
barcodeList.Add("D:\Barcode Images\barcode3.jpg")
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)
' Work with the results
For Each result In batchResults
	Dim barcodeValue As String = result.Text
Next result
$vbLabelText   $csharpLabel

En primer lugar, se crea una lista con la ruta de todos los códigos de barras. A continuación, se llama a la función ReadAsync, que toma un tipo List<string> como argumento y devuelve los datos. Este método lee códigos de barras de varias imágenes en paralelo. Se iniciarán varios subprocesos y se gestionarán automáticamente para mejorar el rendimiento de las tareas de lectura de códigos de barras por lotes.

Escanear código QR

El uso de códigos QR está aumentando rápidamente. Por lo tanto, esta sección mostrará cómo escanear códigos QR usando C#.

Código QR

Tutorial paso a paso del escáner de códigos de barras en C#, Figura 8: El código QR utilizado en esta demostración

El código QR utilizado en esta demostración

Considere el siguiente ejemplo de código:

var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")
For Each result In qrCodeResult
	Console.WriteLine(result.Text)
Next result
$vbLabelText   $csharpLabel

Se utiliza la misma función Read discutida anteriormente para leer el código QR. Esta es la simplicidad que proporciona la biblioteca IronBarcode. De modo que la misma función y el mismo código pueden utilizarse para distintas fuentes de imágenes.

Salida

Tutorial paso a paso del escáner de códigos de barras en C#, Figura 9: La consola del lector de código QR

La consola del lector de código QR

Resumen

Este tutorial muestra una forma muy sencilla de escanear códigos de barras desde una sola imagen, escanear códigos de barras desde un documento PDF y escanear códigos de barras desde varias imágenes y varios documentos en paralelo. Hemos utilizado la misma función para diferentes funcionalidades. Proporciona rendimiento y usabilidad al mismo tiempo. IronBarcode ofrece la funcionalidad de generar códigos de barras y códigos QR con diferentes configuraciones. Hay tantas características que no se pueden discutir en el mismo artículo. Por favor, haga clic en la página de documentación para explorar más sobre IronBarcode.

IronBarcode forma parte de la suite de software Iron. Esta suite contiene otras bibliotecas muy útiles, como IronPDF para leer y escribir archivos PDF, IronXL para manipular archivos Excel, IronOCR para leer texto de imágenes e IronWebScraper para extraer datos de diferentes sitios web. Puede comprar el Iron Suite completo por el precio de dos bibliotecas individuales.

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.
< ANTERIOR
Cómo crear un código QR para un enlace (tutorial de C#)
SIGUIENTE >
Generador de códigos QR .NET (Tutorial de ejemplo de código)