BarcodeParserBuilder生成8位商品码ZPL DataMatrix无法识别求助
GS1 DataMatrix条码(8位商品码)无法识别问题
我通过以下代码生成标签,依赖BarcodeParserBuilder NuGet包:
GS1Barcode barcode = new GS1Barcode(); barcode.ProductCode = ProductCode.ParseGtin(normalizedPresentationCode); string barcodeString = new BarcodeParserBuilder.BarcodeParserBuilder().Build(barcode);
需求是生成可发送至Zebra打印机的标签,14位商品码能正常工作,但8位商品码(如“40170725”)无法被识别。我尝试在其前补“0”以符合规范(已通过校验工具验证),最终生成的barcodeString为“0100000040170725”(也试过格式为“(01)00000040170725”)。
生成ZPL的代码如下:
$"^XA\r\n^FO10,15\r\n^FB390,3,0,C,0\r\n^A0,22,22\r\n^FD{parsedArticleName}\r\n^FS\r\n^FO10,70\r\n^BXN,5,200\r\n^FD{barcodeString}\r\n" + $"^FS\r\n^FO200,75\r\n^A0,24,24\r\n^FD{pFullPack.PresentationCode}\r\n^FS\r\n^FO250,100\r\n^A0,36,34\r\n^FDx {pFullPack.PackRemainingQuantity}\r\n^FS\r\n^FO200,140\r\n^A0,22,22\r\n" + $"^FD{_resourceManager.GetString("Batch")} {pFullPack.BatchNum}\r\n^FS\r\n^FO200,170\r\n^A0,22,22\r\n" + $"^FD{_resourceManager.GetString("Expiration")} {pFullPack.PackDateExpiry:MM/yyyy}\r\n^FS\r\n^FO10,190\r\n^A0,16,16\r\n^FD{_resourceManager.GetString("On")} {DateTime.Now:dd/MM/yyyy}\r\n^FS\r\n^XZ";
生成的8位商品码标签预览如下:
但最终生成的标签无法被Zxing识别(已在线解码平台测试)。请问为何我的DataMatrix条码标签无法被识别?
我曾尝试为GS1Barcode传入AIM标识符参数,参考AIM标识符文档,但未成功:
new GS1Barcode(BarcodeParserBuilder.Aim.AimSymbologyIdentifier.ParseString("]E4"))
补充:我还尝试改用以下代码:
EanBarcode barcode = new EanBarcode();
此时有效期和批次信息完全无法被识别(因此我在条码部分跳过了这些内容),生成的标签如下:
该标签仍无法被扫描识别,但至少不再抛出异常。
内容的提问来源于stack exchange,提问作者AstridS
相关产品推荐
相关产品推荐

