You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:27:19