IronBarCode Não Pôde Reconhecer o Código de Barras MSI

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

Problema

Ao criar um código de barras MSI usando a biblioteca IronBarCode, existem casos em que o método BarcodeReader.Read não consegue ler o código de barras MSI gerado, resultando em uma varredura vazia e no valor esperado do código de barras.

Solução

Para garantir que o BarcodeReader.Read possa ler o código de barras MSI, devemos fornecer o parâmetro opcional secundário BarcodeReaderOptions para o método Read. Dentro do BarcodeReaderOptions, especificamos explicitamente o tipo de código de barras que estamos tentando ler, atribuindo o valor ExpectedBarcodeTypes. Dessa forma, o método Read reconheceria o código de barras MSI gerado a partir do IronBarCode, bem como quaisquer códigos de barras MSI externos.

Abaixo está um exemplo rápido de como aplicar BarcodeReaderOptions a BarcodeReader.Read.

Exemplo 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

No exemplo, primeiro instanciamos uma nova variável BarcodeReaderOptions e depois atribuímos ExpectedBarcodeTypes com o enum BarcodeEncoding.MSI, instruindo o IronBarcode a esperar o código de barras MSI em vez disso. Depois, imprimimos o valor do código de barras, que seria 12345, em um loop for, enquanto o barcodeResults retorna um array de BarcodeResults e percorremos cada resultado para o valor de texto.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.