Что может привести к тому, что штрих-коды Code128, сгенерированные из библиотеки netbarcodewriter, не будут сканироваться?

Я пытаюсь использовать netbarcodewriter из https://github.com/simongh/barcodes для генерации штрих-кодов code128. Сгенерированный штрих-код может быть отсканирован только некоторыми приложениями для смартфонов, но не с каких-либо USB-сканеров или сканеров повышенной прочности Windows Mobile 6, которые у нас есть.

Например, на прилагаемых изображениях показано "502337700000000198", закодированное из разных источников, только приложение для смартфона 1 (ios) - Zbarcode может сканировать штрих-код, сгенерированный netbarcodewriter 1, другие (attscanner) не могут. Ни один из USB-сканеров или защищенных оконных терминалов также не сканирует его.

от netbarcodewriter

из рако

от itextsharp

string huid = "502337700000000198";

short w = 251;
short h = 100;
short x = 28;
Code128 code = new Code128();

var b2mp = code.Generate(huid, new BarcodeSettings { BarHeight = 65, WideWidth = w - 2 * x });
b2mp.Save(string.Format(@"c:\temp\{0}.png", huid), ImageFormat.Png);

При создании с помощью itextsharp 3 или на таких сайтах, как racoindustries.com/barcodegenerator/1d/code-128.aspx 2, все сканеры работают. Штрих-код iTextSharp слишком мал, и свойство BarcodeSize не может быть установлено.

Кто-нибудь работал с этой библиотекой? Кроме того, кто-нибудь знает, что делают эти серые прямоугольники #MARKER?

Любая помощь будет оценена.

1 ответ

Решение

Это своего рода ошибка. Когда вы создаете новый класс Code 128, он устанавливает его настройки по умолчанию. для кода 128 это означает установку отступа модуля - пробела между закодированным числом - равным 0.

В приведенном выше коде вы передаете новый объект настроек. Это устанавливает отступ по умолчанию на 2, отсюда и дополнительный интервал.

Вы также устанавливаете WideWidth, Это не используется в Code128 - он использует только NarrowWidth Это ширина полос и по умолчанию 2.

Другие вопросы по тегам