什么会导致从 netbarcodewriter 库生成的 Code128 条码无法扫描?
Posted
技术标签:
【中文标题】什么会导致从 netbarcodewriter 库生成的 Code128 条码无法扫描?【英文标题】:What would cause Code128 barcodes generated from the netbarcodewriter library not to scan? 【发布时间】:2013-12-01 10:36:33 【问题描述】:我正在尝试使用来自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 灰色矩形是做什么用的吗?
任何帮助将不胜感激。
【问题讨论】:
#marker 灰色矩形是一项调试功能,可让您更轻松地用肉眼阅读条形码。它们不应该在生产中使用 快速浏览一下,顶部图像中的宽度似乎略有偏差。我看看能不能搞清楚原因 谢谢。我使用图像编辑工具“使它们适合”,我注意到每三分之一的空间都太宽了。每隔三个空格。 【参考方案1】:这是一种错误。当您创建一个新的 Code128 类时,它会设置它的默认设置。对于代码 128,这意味着将模块填充(编码数字之间的空格)设置为 0。
在上面的代码中,您传入了一个新的设置对象。这会将内边距设置回默认值 2,因此会有额外的间距。
您还设置了WideWidth
。这在 Code128 中没有使用 - 它仅使用 NarrowWidth
这些是条形的宽度,默认为 2。
【讨论】:
谢谢!我已经改变了它,它适用于所有扫描仪。以上是关于什么会导致从 netbarcodewriter 库生成的 Code128 条码无法扫描?的主要内容,如果未能解决你的问题,请参考以下文章
使用 gradle 解决代理存储库上的 ivy 依赖关系会导致资源丢失
在 SceneKit 中使用 GIFU 库播放 GIF 会导致应用程序 UI 冻结任何解决方案? UIView Animated 从后台线程调用