什么会导致 netbarcodewriter 库生成的 Code128 条形码无法扫描?
题
我正在尝试使用来自的 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 类时,它会设置其默认设置。对于 Code 128,这意味着将模块填充(编码数字之间的空格)设置为 0。
在上面的代码中,您传递了一个新的设置对象。这会将填充设置回默认值 2,从而产生额外的间距。
您还设置了 WideWidth
. 。这在 Code128 中没有使用 - 它只使用 NarrowWidth
这些是条形的宽度,默认为 2。
不隶属于 StackOverflow