O que faria com que os códigos de barras Code128 gerados a partir da biblioteca netbarcodewriter não fossem digitalizados?
Pergunta
Estou tentando usar o netbarcodewriter de https://github.com/simongh/barcodes para gerar códigos de barras code128.O código de barras gerado só pode ser digitalizado por alguns aplicativos de smartphone, mas não por qualquer scanner USB ou scanner Windows Mobile 6 robusto que tenhamos.
Por exemplo, as imagens anexadas mostram "502337700000000198" codificado de diferentes fontes, apenas 1 aplicativo de smartphone (ios) - Zbarcode pode escanear o código de barras gerado pelo netbarcodewriter 1, outros (attscanner) não podem.Nenhum dos scanners USB ou terminais robustos do Windows Ce também o verificam.
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);
Quando gerado por itextsharp 3 ou em sites como racoindustries.com/barcodegenerator/1d/code-128.aspx 2, todos os scanners funcionam.O código de barras do iTextSharp é muito pequeno e a propriedade BarcodeSize não pode ser definida.
Alguém já trabalhou com esta biblioteca?Além disso, alguém sabe o que esses retângulos cinza #MARKER fazem?
Qualquer ajuda será apreciada.
Solução
É uma espécie de bug.Quando você cria uma nova classe Code128, ela define suas configurações padrão.para o Código 128, isso significa definir o preenchimento do módulo - o espaço entre um número codificado - como 0.
No código acima, você passa um novo objeto de configurações.Isso define o preenchimento de volta ao padrão 2, daí o espaçamento extra.
Você também está definindo o WideWidth
.Isso não é usado no Code128 - ele usa apenas NarrowWidth
Esta é a largura das barras e o padrão é 2.