IronBarCode no pudo reconocer el código de barras MSI

This article was translated from English: Does it need improvement?
Translated
View the article in English

Problema

Al crear un código de barras MSI utilizando la biblioteca IronBarcode , hay casos en los que el método BarcodeReader.Read no puede leer el código de barras MSI generado, lo que genera un escaneo vacío y el valor esperado del código de barras.

Solución

Para garantizar que BarcodeReader.Read pueda leer el código de barras MSI, debemos proporcionar el parámetro opcional secundario BarcodeReaderOptions para el método Read. Dentro de BarcodeReaderOptions, especificamos explícitamente el tipo de código de barras que estamos intentando leer asignando el valor ExpectedBarcodeTypes. De esta manera, el método Read reconocería el código de barras MSI generado desde IronBarcode así como cualquier código de barras MSI externo.

A continuación se muestra un ejemplo rápido de cómo aplicar BarcodeReaderOptions a BarcodeReader.Read.

Ejemplo de código

// Creating MSI Barcode with the value "12345"
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI);

// Save barcode as image
myBarcode.SaveAsImage("msi.png");

// Reading MSI
var barcodeReaderOptions = new BarcodeReaderOptions
{
     // Assigning BarcodeEncoding.MSI to ExpectBarcodeType to ensure that IronBarcode expects MSI type barcodes specifically 
  ExpectBarcodeTypes = BarcodeEncoding.MSI,
};

// Read barcode with additional barcodeReaderOptions from above
var barcodeResults = BarcodeReader.Read("msi.png", barcodeReaderOptions);

// Using a for loop and print out the result 
foreach (BarcodeResult result in barcodeResults)
{
  Console.WriteLine(result.Text);
    // Output: 12345 
}
// Creating MSI Barcode with the value "12345"
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI);

// Save barcode as image
myBarcode.SaveAsImage("msi.png");

// Reading MSI
var barcodeReaderOptions = new BarcodeReaderOptions
{
     // Assigning BarcodeEncoding.MSI to ExpectBarcodeType to ensure that IronBarcode expects MSI type barcodes specifically 
  ExpectBarcodeTypes = BarcodeEncoding.MSI,
};

// Read barcode with additional barcodeReaderOptions from above
var barcodeResults = BarcodeReader.Read("msi.png", barcodeReaderOptions);

// Using a for loop and print out the result 
foreach (BarcodeResult result in barcodeResults)
{
  Console.WriteLine(result.Text);
    // Output: 12345 
}
$vbLabelText   $csharpLabel

En el ejemplo, primero instanciamos una nueva variable BarcodeReaderOptions y luego asignamos ExpectedBarcodeTypes con la enumeración BarcodeEncoding.MSI, indicando a IronBarcode que espere el código de barras MSI en su lugar. Luego, imprimimos el valor del código de barras, que sería 12345, en un bucle for mientras barcodeResults devuelve una matriz de BarcodeResults y recorremos cada resultado en busca del valor de texto.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 2,121,847 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.