IronBarcode MSI バーコードが認識できませんでした
問題
IronBarcodeライブラリを使用して MSI バーコードを作成する際、BarcodeReader.Read メソッドが生成された MSI バーコードを読み取れない場合があり、その結果、スキャン結果が空になり、バーコードから期待される値が得られません。
解決策
BarcodeReader.ReadがMSI BARCODEを読み取れるようにするには、BarcodeReaderOptionsを指定する必要があります。 BarcodeReaderOptions 内で、値 ExpectedBarcodeTypes を割り当てることで、読み取り対象の BarCode タイプを明示的に指定します。 これにより、Read メソッドは、IronBarcode から生成された MSI BARCODE だけでなく、外部の MSI BARCODE も認識できるようになります。
以下は、BarcodeReader.Readに適用する簡単な例です。
コード例
// 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
この例では、まず新しい BarcodeReaderOptions 変数をインスタンス化し、次に ExpectedBarcodeTypes に BarcodeEncoding.MSI 列挙型を割り当て、IronBarcode に MSI バーコードを期待するように指示します。 その後、BarcodeResultsの配列を返すため、forループ内でBARCODEの値(12345)をPRINTし、各結果に対してテキスト値を取得します。

