我需要使用 ZPL 生成 GS1-128 条形码。 它需要包括校验位。 我似乎没有得到校验位。
Here is my code:
^BCN,088,Y,Y,Y,D^FD(00)00123456000057763^FS
The first "Y" is saying to print the human readable along with the
barcode. The third "Y" is supposed to tell it to include a check digit.
I'm not seeing the check digit in the human readable, my scanner is not
displaying a check digit, so I'm assuming it is also not in the barcode?
Here is from the spec:
SSCC Barcode Structure (20 digits)
Application Identifier = (00)
Positions of SSCC barcode:
1 = Extension Digit (0-9 assigned by Vendor)
2 = 0 if mfg id # assigned by GS1 US;
1-9 if mfg id # assigned by another GS1 MO
3 thru 8 = 6-digit mfg id #
9 thru 17 = 9-digit serial id # -must be unique for one year
18 = Modulo 10 check character
TLDR; ^BCN,088,Y,Y,,D
^FD(00)001234560000577630^FS
第三个 Y 确实包含一个校验位,但不包括您想要的校验位(ZPL 手册,第 73 页(:
Mod 103 校验位始终存在。它无法打开或关闭。Mod 10 和 103 与打开的 [第三个 Y] 一起出现。
当你使用D
时,它会自动添加一个校验位(ZPL手册,p80(:
打印机自动 确定是否需要校验位,计算并打印校验位。
但更重要的是,它希望您发送 18 位数字:
括号和空格可以位于字段数据中。"00"应用程序标识符,后跟 由 17 个字符组成,后跟伪造的校验位占位符。
它将去除第 18 位数字,并在条形码和人类可读部分替换它。
https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf