micjahn/ZXing.Net

MSI barcode reading fails

Opened this issue · 0 comments

Hi!

Short version: ZXing fails reading MSI barcodes (generated with SkiaSharp without antialiasing) that the Zebra TC52 Android device can read.

Longer version:

I am writing some code for generating barcodes (just as a hobby project, not open source yet since it is very early and I suck at git).

For the MSI code, I have managed to generate codes with the following checksum variants (hopefully correctly implemented):

public enum MSICheckCharacterAlgorithm
{
None,
Modulo10,
IBMModulo11,
NCRModulo11,
Modulo1010,
IBMModulo1110,
NCRModulo1110,
}

I have managed to verify my output on a Zebra TC52 Android device when using the follow checksum variants (since they are the only ones supported by the device):

Modulo10 (1 checksum char)
Modulo1010 (2 checksum chars)
IBMModulo1110 (2 checksum chars)

I have tried ZXing 0.16.9 with no check character and with mod 10, but can't get it to read the MSI barcode.

I have looked at MSIReader.cs but the code is a bit too advanced for me too see what could be wrong.

I have also tested MSI codes generated at https://barcode.tec-it.com/ with the TC52 (it can only do mod 10 check characters). I have not tried the images generated by that site in ZXing yet.

I would be happy to help in trying to make ZXing do MSI barcodes better, I could supply images, my source so far, testing with Zebra TC52 and Honeywell CT40.

/rob