Что может привести к тому, что штрих-коды Code128, сгенерированные из библиотеки netbarcodewriter, не будут сканироваться?
Вопрос
Я пытаюсь использовать netbarcodewriter из https://github.com/simongh/barcodes для генерации штрих-кодов code128.Сгенерированный штрих-код можно сканировать только с помощью некоторых приложений для смартфонов, но не с помощью имеющихся у нас USB-сканеров или защищенных сканеров Windows Mobile 6.
Например, на прикрепленных изображениях показано «502337700000000198», закодированное из разных источников, только 1 приложение для смартфона (ios) — Zbarcode может сканировать штрих-код, сгенерированный netbarcodewriter. 1, другие (attscanner) не могут.Ни один из USB-сканеров или защищенных терминалов Windows ce также не сканирует его.
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?
Любая помощь будет оценена по достоинству.
Решение
Это своего рода ошибка.Когда вы создаете новый класс Code128, он устанавливает настройки по умолчанию.для кода 128 это означает установку заполнения модуля (пробела между закодированными числами) на 0.
В приведенном выше коде вы передаете новый объект настроек.Это возвращает отступу значение по умолчанию, равное 2, отсюда и дополнительный интервал.
Вы также устанавливаете WideWidth
.Это не используется в Code128 — он использует только NarrowWidth
Это ширина полос, по умолчанию равна 2.