Saltar al pie de página
USO DE IRONBARCODE

Tutorial Paso a Paso del Escáner de Código de Barras en C#

Este tutorial demostrará cómo crear un escáner de códigos de barras con la asistencia de una biblioteca de terceros. Existen múltiples bibliotecas para este propósito, pero algunas son de pago, otras ofrecen menos funcionalidad y algunas son difíciles de implementar. Es una tarea desafiante 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 en .NET. También tiene el beneficio adicional de ser gratuito para el desarrollo, altamente eficiente y fácil de implementar. IronBarcode permite a los desarrolladores leer y escribir códigos de barras y códigos QR dentro de aplicaciones y sitios web .NET. Leer o escribir códigos de barras solo requiere una línea de código con esta biblioteca.

La biblioteca .NET lee y escribe la mayoría de los estándares de códigos de barras y QR. Los tipos de códigos de barras admitidos incluyen code 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 tipo, texto, datos binarios, página y archivos de imagen.

La API de escritura de códigos de barras verifica el formato, la longitud, el número y el chequeo para evitar automáticamente errores de codificación. El escritor de códigos de barras permite el estilo, redimensionado, márgenes, bordes, recoloración y agregar anotaciones de texto. El escritor de códigos de barras puede escribir en archivos de imagen, incluyendo BMP, PNG, GIF, TIFF y JPG. También puede escribir en archivos PDF o HTML.

Creemos nuestro escáner de códigos de barras para entenderlo mejor.

Crear un proyecto de Visual Studio

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

Sigue los pasos a continuación para crear un nuevo proyecto de aplicación de consola para centrarte en las funcionalidades principales. El mismo código se puede implementar en aplicaciones web API, MVC, Web Forms, o Windows Forms.

  1. Abre Visual Studio
  2. Haz clic en Crear nuevo proyecto
  3. Selecciona Plantilla, haz clic en el botón Siguiente
  4. Nombra el Proyecto, haz clic en el botón Siguiente
  5. Selecciona Plataforma Objetivo, haz clic en el botón Siguiente
  6. Haz clic en el botón Crear, haz clic en el botón Siguiente

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

Tutorial paso a paso de C# Barcode Scanner, 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 el paquete NuGet de IronBarcode

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

Sigue los pasos a continuación:

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

Tutorial paso a paso de C# Barcode Scanner, Figura 2: Interfaz de Usuario de la Consola del Administrador de Paquetes Interfaz de Consola del Administrador de Paquetes

  1. Escribe el siguiente comando
Install-Package BarCode

El paquete se instalará.

Ahora escribamos código para escanear una imagen de código de barras.

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

Agrega el siguiente espacio de nombres

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

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

// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
// Read the barcode from an image file
var myBarcode = BarcodeReader.Read(@"D:\Barcode Images\mybarcode.jpeg");

// Print the barcode data to the console
Console.WriteLine(myBarcode);
' Read the barcode from an image file
Dim myBarcode = BarcodeReader.Read("D:\Barcode Images\mybarcode.jpeg")

' Print the barcode data to the console
Console.WriteLine(myBarcode)
$vbLabelText   $csharpLabel

La clase BarcodeReader proporciona una función Read que toma 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 archivo BMP, PNG, GIF, TIFF o JPG con configuraciones granulares para control del desarrollador para equilibrar el rendimiento contra la precisión para su caso de uso dado.

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 de C# Barcode Scanner, Figura 3: La imagen de código de barras utilizada en esta Aplicación de Consola La imagen de 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.

Resultado

Tutorial paso a paso de C# Barcode Scanner, Figura 4: La salida de la Consola al ejecutar la aplicación La salida de la Consola al ejecutar la aplicación

Se puede ver que el programa ha generado una salida precisa.

Escanear un código de barras desde un PDF

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

Documento PDF

Tutorial paso a paso de C# Barcode Scanner, Figura 5: Una factura en formato PDF Una factura en formato PDF

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

// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
// Read barcodes from a PDF file
var myBarcode = BarcodeReader.ReadPdf(@"D:\Barcode Images\invoice.pdf");

// Iterate through each barcode found and print its value
foreach(var barcodeData in myBarcode)
{
    Console.WriteLine(barcodeData.Value);
}
' Read barcodes from a PDF file
Dim myBarcode = BarcodeReader.ReadPdf("D:\Barcode Images\invoice.pdf")

' Iterate through each barcode found and print its value
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 el código de barras completo y devuelve sus datos en forma de un array. Esta función lee códigos de barras de cada imagen incrustada en el documento.

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

Resultado

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

Tutorial paso a paso de C# Barcode Scanner, Figura 6: La salida de la Consola muestra el número de factura La salida de la Consola muestra el número de factura

Escaneo de códigos de barras de varios archivos

Este ejemplo demostrará cómo escanear múltiples códigos de barras desde archivos de imagen simultáneamente.

Imágenes de códigos de barras

Tutorial paso a paso de C# Barcode Scanner, Figura 7: Imágenes de códigos de barras utilizadas en el ejemplo a continuación Imágenes de códigos de barras en el siguiente ejemplo

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

// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
// Create a list of file paths containing barcode images
List<string> barcodeList = new List<string>
{
    @"D:\Barcode Images\barcode1.jpg",
    @"D:\Barcode Images\barcode2.jpg",
    @"D:\Barcode Images\barcode3.jpg"
};

// Read barcodes asynchronously from multiple files
var batchResults = BarcodeReader.ReadAsync(barcodeList);

// Work with the results
foreach (var result in batchResults)
{
    string barcodeValue = result.Text;
    Console.WriteLine(barcodeValue);
}
' Create a list of file paths containing barcode images
Dim barcodeList As New List(Of String) From {"D:\Barcode Images\barcode1.jpg", "D:\Barcode Images\barcode2.jpg", "D:\Barcode Images\barcode3.jpg"}

' Read barcodes asynchronously from multiple files
Dim batchResults = BarcodeReader.ReadAsync(barcodeList)

' Work with the results
For Each result In batchResults
	Dim barcodeValue As String = result.Text
	Console.WriteLine(barcodeValue)
Next result
$vbLabelText   $csharpLabel

Primero, se crea una lista para contener la ruta del archivo de todas las imágenes de 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 múltiples imágenes en paralelo. Múltiples hilos se iniciarán 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 de C# Barcode Scanner, Figura 8: El código QR utilizado en esta demostración El código QR utilizado en esta demostración

Considera el siguiente ejemplo de código:

// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
// Read the QR code from an image file
var qrCodeResult = BarcodeReader.Read(@"D:\Barcode Images\QRcode.jpeg");

// Iterate through each result and print its text
foreach (var result in qrCodeResult)
{
    Console.WriteLine(result.Text);
}
' Read the QR code from an image file
Dim qrCodeResult = BarcodeReader.Read("D:\Barcode Images\QRcode.jpeg")

' Iterate through each result and print its text
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 proporcionada por la biblioteca IronBarcode, permitiendo usar la misma función y código para diferentes fuentes de imagen.

Resultado

Tutorial paso a paso de C# Barcode Scanner, Figura 9: La salida de la Consola del lector de códigos QR La salida de la Consola del lector de códigos QR

Resumen

Este tutorial demostró una manera muy fácil 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 múltiples imágenes y múltiples documentos en paralelo. Hemos utilizado la misma función para diferentes funcionalidades, proporcionando rendimiento y usabilidad al mismo tiempo. IronBarcode proporciona 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, haz clic en la página de documentación para una mayor exploración de IronBarcode.

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

Preguntas Frecuentes

¿Cómo puedo crear un escáner de código de barras en C#?

Para crear un escáner de código de barras en C#, puedes usar IronBarcode. Comienza configurando un proyecto en Visual Studio, instalando el paquete NuGet de IronBarcode y utilizando la clase BarcodeReader para leer códigos de barras desde archivos de imagen o PDF.

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

IronBarcode puede leer una amplia gama de tipos de códigos de barras, incluyendo Code 39/93/128, UPC A/E, EAN 8/13, ITF, RSS 14 / Expanded, Databar, Codabar, Aztec, Data Matrix, MaxiCode, PDF417, MSI, Plessey, USPS y códigos QR.

¿Puedo leer códigos de barras de archivos PDF en C#?

Sí, IronBarcode te permite leer códigos de barras desde archivos PDF usando el método ReadPdf, que escanea todo el documento PDF en busca de imágenes de códigos de barras y devuelve sus datos.

¿Es posible escanear múltiples códigos de barras desde diferentes archivos de imagen en C#?

Sí, puedes usar la función ReadAsync en IronBarcode para escanear múltiples códigos de barras desde diferentes archivos de imagen simultáneamente, aprovechando el procesamiento asíncrono para mejorar el rendimiento.

¿Cómo instalo una biblioteca .NET para la funcionalidad de código de barras?

Para instalar IronBarcode, utiliza la Consola del Administrador de Paquetes en Visual Studio con el comando Install-Package Barcode, que añadirá la biblioteca desde la fuente del paquete NuGet.

¿Pueden escanearse los códigos QR usando el mismo método que los códigos de barras?

Sí, puedes escanear códigos QR usando la misma función Read en IronBarcode, permitiendo un manejo consistente de ambos tipos de códigos a través de diversas fuentes de imagen.

¿Cuáles son las ventajas de usar IronBarcode para escanear códigos de barras?

IronBarcode es fácil de usar, eficiente y adaptable. Soporta una variedad de tipos de códigos de barras y proporciona API simples para leer y escribir códigos de barras y QR, lo que lo hace ideal para aplicaciones .NET.

¿Qué bibliotecas están incluidas en el Iron Software Suite?

El Iron Software Suite incluye bibliotecas como IronPDF para la manipulación de PDFs, IronXL para el manejo de archivos Excel, IronOCR para el reconocimiento óptico de caracteres, e IronWebScraper para la extracción de datos web.

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