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 usando la biblioteca IronBarCode, hay casos en los que el método BarcodeReader.Read no puede leer el código de barras MSI generado, resultando en un escaneo vacío y el valor esperado del código de barras.

Solución

Para asegurar 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 a partir de 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 
}
' Creating MSI Barcode with the value "12345"
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.MSI)

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

' Reading MSI
Dim barcodeReaderOptions As New BarcodeReaderOptions With {.ExpectBarcodeTypes = BarcodeEncoding.MSI}

' Read barcode with additional barcodeReaderOptions from above
Dim barcodeResults = BarcodeReader.Read("msi.png", barcodeReaderOptions)

' Using a for loop and print out the result 
For Each result As BarcodeResult In barcodeResults
  Console.WriteLine(result.Text)
	' Output: 12345 
Next result
$vbLabelText   $csharpLabel

En el ejemplo, primero instanciamos una nueva variable BarcodeReaderOptions y luego asignamos ExpectedBarcodeTypes con el enum BarcodeEncoding.MSI, instruyendo 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 ya que barcodeResults devuelve un arreglo de BarcodeResults y recorremos cada resultado para obtener el 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 1,979,979 | Version: 2025.11 recién lanzado