使用 ZXing.Net 生成 GS1-128
Generate GS1-128 using ZXing.Net
我们使用 ZXing.Net 生成代码 128 条码,一切正常。
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.CODE_128 };
writer.Write("01950123456789031000012317150801").Save("code128.png", ImageFormat.Png);
最近我们被要求将格式更改为 GS1-128,经过一些研究,我们发现此解决方案使用 FNC1 (ASCII 29) 来编写 DataMatrix GS1。
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.DATA_MATRIX };
writer.Write($"{(char)29}019501234567890310000123{(char)29}17150801").Save("gs1datamatrix.png", ImageFormat.Png);
但是,如果我们将条形码格式更改为BarcodeFormat.CODE_128
,程序将抛出异常显示Bad character in input:
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.CODE_128 };
writer.Write($"{(char)29}019501234567890310000123{(char)29}17150801").Save("gs1code128.png", ImageFormat.Png);
如有任何建议,我们将不胜感激。
您必须使用值“(char)0x00F1”代替“(char)29”作为组分隔符。
有一种更简单的方法可以通过 Zxing.Net 生成 GS1-128 条形码,而无需手动将字符 FNC1 添加到内容中。
你应该只设置标志 GS1Format = true
barcodeWriterSvg.Format = BarcodeFormat.CODE_128;
barcodeWriterSvg.Options.GS1Format = true;
barcodeWriterSvg.Options.Margin = 64;
var svgImage = barcodeWriterSvg.Write(content);
return svgImage.Content;
但原始解决方案基于手动将 FNC1 字符添加到字符串的开头 https://github.com/micjahn/ZXing.Net/wiki/Generating-GS1-DataMatrix-and-GS1-Code128-barcodes
我们使用 ZXing.Net 生成代码 128 条码,一切正常。
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.CODE_128 };
writer.Write("01950123456789031000012317150801").Save("code128.png", ImageFormat.Png);
最近我们被要求将格式更改为 GS1-128,经过一些研究,我们发现此解决方案使用 FNC1 (ASCII 29) 来编写 DataMatrix GS1。
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.DATA_MATRIX };
writer.Write($"{(char)29}019501234567890310000123{(char)29}17150801").Save("gs1datamatrix.png", ImageFormat.Png);
但是,如果我们将条形码格式更改为BarcodeFormat.CODE_128
,程序将抛出异常显示Bad character in input:
BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.CODE_128 };
writer.Write($"{(char)29}019501234567890310000123{(char)29}17150801").Save("gs1code128.png", ImageFormat.Png);
如有任何建议,我们将不胜感激。
您必须使用值“(char)0x00F1”代替“(char)29”作为组分隔符。
有一种更简单的方法可以通过 Zxing.Net 生成 GS1-128 条形码,而无需手动将字符 FNC1 添加到内容中。
你应该只设置标志 GS1Format = true
barcodeWriterSvg.Format = BarcodeFormat.CODE_128;
barcodeWriterSvg.Options.GS1Format = true;
barcodeWriterSvg.Options.Margin = 64;
var svgImage = barcodeWriterSvg.Write(content);
return svgImage.Content;
但原始解决方案基于手动将 FNC1 字符添加到字符串的开头 https://github.com/micjahn/ZXing.Net/wiki/Generating-GS1-DataMatrix-and-GS1-Code128-barcodes