我正在尝试使用来自的 netbarcodewriter https://github.com/simongh/barcodes 生成 code128 条形码。生成的条形码只能由某些智能手机应用程序扫描,而不能由我们拥有的任何 USB 扫描仪或加固型 Windows Mobile 6 扫描仪扫描。

例如,所附图像显示从不同来源编码的“502337700000000198”,只有 1 (ios) 智能手机应用程序 - Zbarcode 可以扫描由 netbarcodewriter 生成的条形码 1, ,其他(attscanner)则不能。USB 扫描仪或加固型 Windows CE 终端也无法扫描它。

from netbarcodewriter

from raco

from itextsharp

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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top