Cómo leer varios códigos de barras a la vez

por Hairil Hasyimi Bin Omar

La lectura simultánea de varios códigos de barras es crucial para diversos sectores, como la logística, el comercio minorista, la sanidad y la gestión de inventarios, ya que permite un procesamiento eficaz de los datos. Con IronBarcode, puede conseguir fácilmente esta capacidad, lo que la convierte en una potente herramienta para agilizar las operaciones y mejorar la productividad.


Biblioteca NuGet C# para

Instalar con NuGet

Install-Package BarCode
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de lectura de varios códigos de barras

Por defecto, IronBarcode escanea continuamente un documento para leer múltiples códigos de barras. Sin embargo, ha habido casos en los que sólo se devuelve un valor de código de barras, incluso cuando hay varios códigos de barras presentes en la imagen. Para solucionar este problema, los usuarios pueden personalizar la configuración para permitir la lectura de múltiples códigos de barras, como se muestra en el siguiente fragmento de código. Tenga en cuenta que la propiedad ExpectMultipleBarcode existe tanto en la clase BarcodeReaderOptions como en PdfBarcodeReaderOptions, lo que permite a los usuarios utilizarla para leer códigos de barras tanto en imágenes como en documentos PDF.

Imagen de muestra

Imagen a leer
:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-read-multiple-barcodes.cs
using IronBarCode;
using System;

//  Establecer la opción de leer varios códigos de barras
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

//  Leer código de barras
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}
Imports IronBarCode
Imports System

'  Establecer la opción de leer varios códigos de barras
Private options As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = True,
	.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}

'  Leer código de barras
Private results = BarcodeReader.Read("testbc1.png", options)

For Each result In results
	Console.WriteLine(result.ToString())
Next result
VB   C#

Al establecer ExpectMultipleBarcodes en true en el fragmento de código, IronBarcode analiza todo el documento en busca de múltiples códigos de barras y los almacena en la variable BarcodeResults. Utilizando un bucle foreach, los usuarios pueden acceder fácilmente a todos los valores del código de barras e imprimirlos en la consola.

Ejemplo de lectura de un código de barras

IronBarcode puede leer códigos de barras simples y múltiples en una imagen o PDF. Por defecto, el motor escanea todo el documento aunque sólo haya un código de barras. Sin embargo, para aumentar el rendimiento al leer un solo código de barras, puede establecer ExpectMultipleBarcodes en false. De este modo, el motor deja de escanear todo el documento tras detectar el primer código de barras, lo que agiliza la recuperación de códigos de barras. El siguiente fragmento de código muestra cómo hacerlo.

Imagen de muestra

Imagen a leer
:path=/static-assets/barcode/content-code-examples/how-to/read-multiple-barcodes-read-single-barcode.cs
using IronBarCode;
using System;

//  Establezca la opción de leer un solo código de barras
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

//  Leer código de barras
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}
Imports IronBarCode
Imports System

'  Establezca la opción de leer un solo código de barras
Private options As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}

'  Leer código de barras
Private results = BarcodeReader.Read("testbc1.png", options)

For Each result In results
	Console.WriteLine(result.ToString())
Next result
VB   C#

En el fragmento de código anterior, hemos utilizado la misma imagen con múltiples códigos de barras que antes, pero esta vez, hemos establecido ExpectMultipleBarcodes en false. Como resultado, sólo se devuelve el valor del primer código de barras, y el proceso de escaneado se detiene una vez recuperado el primer código de barras.

Comparación de resultados

Establecer ExpectMultipleBarcodes en false puede mejorar en gran medida la eficacia de la lectura de códigos de barras individuales en la imagen.

Utilizando el fragmento de código proporcionado, he aquí una estimación aproximada de la diferencia de rendimiento entre establecer ExpectMultipleBarcode en true y false en la misma máquina:

ExpectMultipleBarcodes = trueExpectMultipleBarcodes = false
00,91 segundos00.10 segundo