导致从netbarcodewriter库生成的Code128条码无法扫描的原因是什么?

我正在尝试使用https://github.com/simongh/barcodes的netbarcodewriter生成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.

上一篇:Django——Paginator分页功能练习


下一篇:Django models 中导入重复数据的解决办法