ZPL条码及参数说明

^B1(Code 11)也就是USD-8码。在Code 11条码中,每个字符由三个条的两个空组成,字符集为10个数字和破折号。
  打印比例调整:2.0到3.0
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  ^B1命令的格式:
  ^B1o,e,h,f,g

^B1

= Code 11条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)
e = 校验位
    默认值:N(No) = 2位校验位
    其他值: Y(Yes) = 1位校验位

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

^B2 交叉二五码

  ^B2(交叉二五码)是高密度的、自校验的、连续的、数字的符号。它的每个字符由五个元素组成:五个条或五个空。这五个元素中,两个是宽的三个是窄的。条码由条和空交叉组成。
  条码中,每个字符由三个条的两个空组成,字符集为10个数字和破折号。
  打印比例调整:2.0到3.0
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  由定义可知,交叉二五码的位数必须是偶数。如果是奇数,则打印机自动在接收到的数据前加上0。
  交叉二五码使用模10校验法。 字符集:数字0-10

^B2命令的格式:
  ^B2o,h,f,g,e

^B2

= 交叉二五码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
e = 校验位
    默认值:N(No) = 2位校验位
    其他值: Y(Yes) = 1位校验位

 

^B3 Code 39码

  ^B3(Code 39码)是很多行业的标准,为美国国防部(DOD)所采用,是美国国家标准协会(ANSI)MH10.8-1983的三种识别符号之一。也叫作USD-3码或39码。
  39码的每个字符由九个元素组成:五个条,四个空和字符间隙,这九个元素中,三个是宽的,六个是窄的。
  打印比例调整:2.0到3.0
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  字符集为10个数字和破折号。
  Code 39码可以兼容128位ASCII字符集,参看表A和表B
  字符集:数字0-10,A-Z,space,-,。,$,/,+,%

^B3命令的格式:
  ^B3o,e,h,f,g

^B3

= Code 39条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)
e = 模43校验位
    默认值:N(No) = 不打印校验位
    其他值: Y(Yes) = 打印校验位

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

  Code 39码的起始位和终止位是自动生成的。

  注意:模43校验位计算方法可参考附录D

 

^B4 Code 49码

  ^B4(Code 49码)是一种多行、连续、可变长的兼容128位全ASCII字符集的条码。它较完美的实现了在较小的空间存储了大量的数据。
  128码一般2到8层,每层由左空白区、层起始符、4个符号字符、层终止符及右空白区组成。层与层之间由一个模块的层分隔条分隔。Code 49码的每个符号字符可表示2个基本字符集中的字符。各层能以任意次序扫描。
  可以参考 Uniform Symbology Specification USS-9 可得到更多的信息。
  打印比例是固定的。

^B4命令的格式:
  ^B4o,h,f,m

^B4

= Code 49条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 每层高度
    定义:
默认值:由^BY值确认。
其他值:1到标签高度
注意:1并不是可取的数值

f

= 打印注释行
    默认值:
其他值:
N = 不打印(No)
A = 打印在条码的上方(Above)
B = 打印在条码的下方(Below)
    注意:当条码超过2层,注释行将越过右边缘。
m = 开始模式
    默认值: A =自动模式。打印机分析数据字段并决定起始模式。
    其他值: 0 = 规范字母数字模式
1 = 多种可读字母数字
2 = 规则数字模式
3 = 数字字母组
4 = 规则数字字母变化1
5 = 规则数字字母变化2

Code 49字段数据字符集

  当采用起始模式为0到5时,^FD送往打印机的数据是基于Code49码的内部字符集的。它们在下图的第一列。字符:;<=>和?是Code 49码的控制字符。
  使用模式0-5时,有效的字段数据都将被支持。变化字符由一个转换字符和一个非转换字符组成一个两个字符的序列。例如,打印小写的字符a,先送一个“SHIFT2”,接着再送“A”(>A),如果打印注释行,注释行上将出现小写的a。
  注意:Code49码只使用大写字母。
  如果检测到一个无效的字串,Code49格式化器将停止解释,并打印一个符号来代替这个无效的字串,下面就是一些无效的字串的例子。
  用除了0到9或空格的任意字符结束数字模式
  用了第四种模式但数据字段起始字符并不是SHIFT 1 字符集。
  用了第五种模式但数据字段起始字符并不是SHIFT 2 字符集。
  送了一个SHIFT 1字符但下一个字符不在SHIFT 1 字符集中。
  送了一个SHIFT 2字符但下一个字符不在SHIFT 2 字符集中。
  送了两个SHIFT 1 或SHIFT 2 控制字符。
  

使用Code 49 自动模式的优势

  使用自动模式(默认值)可完全不用人工选择起始模式和人工控制字符变化。自动模式分接收的ASCII字符串,选择适当的模式,处理字符变化,以最大密度压缩数据。

  注意:当大于等于5位数字时,只能选择数字模式,数字模式在数字字符串长度小于8时在与字母方式相比在条码所占空间并没有多大优势。

 

 

^B7 PDF417条码

  ^B7(PDF417)条码命令是一个二维、多层、连续、堆栈的符号码。这种条码可以在每个标签上打印超过1000个字节。它完美地适用于那些需要在读条码时读入大量信息的应用。
  代码由3到90个堆栈层组成,每一层由开始、停止和符号字符构成的码词组成,每个码词包含四个条和四个空。每层最少必须有3个码词。
  打印比例固定。
  下面是一个PDF417条码的示例,这个示例显示一个如下所示的条码,^FD 和^FS 间的字符为条码右边的内容。

^B7命令的格式:
  ^B7o,h,s,c,r,t

^B7

= PDF417条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 每层高度
    默认值:由^BY值确认。
其他值:1到标签高度
注意:1并不是可取的数值

s

=

这个数字表示错误检查和纠错级别,默认值是只检测错误(不纠错),提高安全级别将增加纠错能力,当然也增加了符号的大小)
默认值: 0 = 只检测错误。
其他值: 1到8。 纠错能力从小到大。
    注意:当条码超过2层,注释行将越过右边缘。
c


=


编码的数据的列数
用户可以指定每列的codeword来控制符号的宽度。
默认值:1:2 层/列
其他值:1到30
r = 编码的层数
    用户可以指定层数来控制符号的高度。
默认值:1:2 层/列
其他值:3-90
示例:如果没有输入层数和列数,有72个码字,共6列12层(随着码字的不同,比例并不是一定的。)
t = 截去层指示和停止区
    默认值:N = 不截去(No),打印层指示和终止符
其他值:Y = 截去(No),不打印层指示和终止符

注意:

  1. 如果层和列都是用户自定义的,它们的乘积必须小于928。
  2. 如果 层 × 列 >928将什么都不打印。
  3. 如果 码字总数 > 层 × 列 将不打印。
  4. 条码不能连续变化。
  5. 截短功能用在标签不会损坏的场合,右连的层指示和终止符可以减少一个单独的模块。截去与不截去的条码的不同请参见 下图。

使用PDF417时特殊的^BY命令

  使用PDF417时^Byw,r,h的 参数意义如下:

w

=

模块宽度(默认值=2),上限为10。

r

=

比例( 默认值=3)固定。在PDF417中没作用。

h

=

条码高度。整个条码的高度。如果PDF417在^B7中没有指定高度时,将使用这个值作为整个条码的高度。

使用PDF417时特殊的^FD字符集

  除了对打印机有特殊意义的那些字符外,所有ASCII字符都可送往打印机。在所有^FD语句中CR/LF已成为合法字符。用下列办法替换。

“\&”

=

回车/换行

“\(*)”

=

软连字号(单词断开时使用),如果连字符放在一行的最后,它会被打印出来,如果它不是在在一行的最后,将会被忽略。(在^B7中忽略)

“\\”

=

字符\,(注意必须选择^CI13 ,使它能打印 \)

(*)

=

任意字母/数字

 

 

^B8 EAN-8 条码

  ^B8(EAN-8)条码命令是EAN-13的缩短版,参见EAN-13可以得到更多的关于EAN的信息。EAN是国际物品编码协会(European Article Number Association)的字母的首位。
  每个EAN-8的条码符号由四个元素组成:两个条,两个空。
  打印比例固定。
  ^FD(Field data,字段数据)限制:必须7位,ZPLII自动在大于7位时截去超过的部分,在小于7位于在前面加上0。
  注意:JAN-8(日本物品编码)系统是EAN-8中的特殊应用。在这种情况下,送给打印机的前两位数据永远是49。
  EAN-8字符集:0到9。

^B8命令的格式:
  ^B8o,h,f,g

^B8

= EAN-8条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

 

^B9 UPC-E 条码

  ^B9(UPC-E)条码命令是UPC系统的一种变化用于数字系统0,UPC是美国统一代码(Universal Product Code)的缩写。它是UPC-A带有压缩0的缩短版,这样打印空间就可以减少。通常用于印制小标签。
  注意:使用带压缩0的UPC码,用户必须输入满10位的字符串,ZPLII将计算并打印出缩短版UPC。
  每个UPC-E的条码符号由四个元素组成:两个条,两个空。
  打印比例固定。
  ^FD(Field data,字段数据)限制:必须10位字符,5位制造商代码,5位产品代码。
  UPC-9字符集:0到9。
  如想进一步了解,可参阅UPC码规范。

^B9命令的格式:
  ^B9o,h,f,g,e

参数意义:

^B9 = UPC-E条码

^B9

= UPC-E条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
e = 打印校验位
    默认值:Y = 打印(Yes)
其他值:N = 不打印(No)

四种规则适合产品编码:

  1. 如果厂商编码的最后编码为000,100,或200,有效的产品编码为00000-00999。
  2. 如果厂商编码的最后三位为300,400,500,600,700,800或900,有效的产品编码为00000-00099。
  3. 如果厂商编码的最后两位为10,20,30,40,50,60,70,80或90,有效的产品编码为00000-00009。
  4. 如果厂商编码的最后一位不为0,有效的产品编码为00005-00009。

 

^BA Code 93 条码

  ^BA(Code 93)条码命令是一种变长、连续型符号码。它可就用在许多同39码一样的场合。它使用128位全ASCII码,但由于ZPLII不支持ASCII的控制代码或ESC序列,所以它用以下字符来替代。该代码也叫USS-93。

控制码 ZPL II表示
Ctrl $
Ctrl %
Ctrl /
Ctrl +

  每个Code 93码的字符由六个元素组成:三个条,三个空。所不同的是,可阅读的注释上将把所用的控制代码了打印出来。
  注意:控制码是成对使用的,如须知详情,参阅93码规范。
  打印比例固定。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  字符集为10个数字和破折号。
  Code93字符集:0到9、A到Z,- . $ / + % & ?( ) space 
  如想进一步了解,可参阅UPC码规范。

^BA命令的格式:
  ^BAo,h,f,g,e

 

^BA

= Code 93条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
e = 打印校验位
    默认值:Y = 打印(Yes)
其他值:N = 不打印(No)

  Code 39码能够对前128位ASCII码字符集进行编码,请看下表。

ASCII 93码 ASCII 93码 ASCII 93码 ASCII 93码 ASCII 93码 ASCII 93码 ASCII 93码 ASCII 93码
NUL 'U DEL &P SP Space 0 0 @ 'V P P ' 'W p )P
SOH &A DC1 &Q ! (A 1 1 A A Q Q a )A q )Q
STX &B DC2 &R (B 2 2 B B R R b )B r )R
ETX &C DC3 &S # (C 3 3 C C S S c )C s )S
EOT &D DC4 &T $ $ 4 4 D D T T d )D t )T
ENQ &E NAK &U % % 5 5 E E U U e )E u )U
ACK &F SYN &V & (F 6 6 F F V V f )F v )V
BEL &G ETB &W (G 7 7 G G W W g )G w )W
BS &H CAN &X ( (H 8 8 H H X X h )H x )X
HT &I EM &Y ) (I 9 9 I I Y Y i )I y )Y
LF &J SUB &Z * (J : (Z J J Z Z j )J z )Z
VT &K ESC 'A + : 'F K K [ 'K k )K { 'P
FF &L FS 'B (L < 'G L L \ 'L l )L | 'Q
CR &M FS 'C - = 'H M M ] 'M m )M } 'R
SO &N RS 'D . . > 'I N N ^ 'N n )N ~ 'S
SI &O US 'E / / ? 'J O O   'O o )O DEL 'T

 

^BB CODEBLOCK 条码

  ^BB(CODEBLOCK)是二维、多层、堆栈型符号码。它完美地用于需读取大量信息的应用中。
  选择不同的模式,代码的层数也在1到44之间变化。每一层都有起始符与终止符。
  打印比例:CODEBLOCK 是可变的,CODEBLOCK E 和CODEBLOCK F是固定的。
  下面是一个打印CODEBLOCK条码的例子:

^BB命令的格式:
  ^BBo,h,s,c,r,m

 

^BB

= CODEBLOCK条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 单独每层的条码高度
    默认值:8点
其他值:2点到200点

s

= 安全级别 (决定是否生成校验位并增加到条码中)
    默认值: Y = 打印校验位(Yes)
其他值:N = 不打印校验位(No)
注意:只有参数m 设为CODEBLOCK A时才能改变安全级别。如果只是单层就不生成校验位。
c = 每一层的字符数
    使用户可以控制条码的宽度。
范围:CODEBLOCK A,E和F:2到62
r = 编码的层数
    用户可以指定条码的层数来控制条码的高度。
范围:CODEBLOCK A:1 到 22
   CODEBLOCK E 、F:2到44
如果条码的层数和每层的字符数没有定义,将打印一个单层。
  • 如果没有指定每层的字符数,条码的字符数小于每层的字符数,将打印一个单层。
  • 如果没有指定每层的字符数,数据字段除以层数就是每层的字符数。
  • 如果指定了两个参数,字段数据发须小于它们的乘积。
  • 如果大于它们的乘积,既不打印条码了不显示错误代码。
m = 模式
    默认值:F
其他值:A 和 E
CODEBLOCK A 使用39码字符集,
CODEBLOCK F 使用128码字符集,
CODEBLOCK E使用128字符集并自动增加FNC1子集。

使用CODEBLOCK时^BY命令的注意事项

  使用^BB代码时,^BYw,r,h各参数的意义如下:

w = 模块宽度(默认值=2),最大为10。
r = 比例( 默认值=3)固定。在CODEBLOCK中没作用。
h = 条码高度。整个条码的高度。只有CODEBLOCK在^BB中没有指定高度时,将使用这个值作为整个条码的高度。

使用CODEBLOCK时特殊的^FD字符集

  根据参数m的不同选择不同的字符集。
  CODEBLOCK A:使用的字符集同CODE39。如果有其他的字符在^FD中,由^CV语句决定不打印条码或打印错误信息。
  CODEBLOCK E:自动模式集包含了除了对打印机有特殊含义的字符以外的全部的ASCII字符集。功能代码和CODE128子集A中NUL字符也可以用^FH来插入。

=80hex =81hex =82hex
=83hex =84hex  

  对于那些ASCII码大于84hex的字符,由^CV语句决定不打印条码或打印错误信息。
  CODEBLOCK F:使用除了对打印机有特殊含义的字符以外的全部的ASCII字符集。功能代码和CODE128子集A中NUL字符也可以用^FH来插入。

=80hex =81hex =82hex
=83hex =84hex  

  对于那些ASCII码大于84hex的字符,由^CV语句决定不打印条码或打印错误信息。

 

^BC Code 128 条码

  ^BC(Code 128)条码是一种高密度、变长、连续型字母数字型符号码。它被设计用来对一些复杂的产品标识进行编码。该代码也叫USD-6条码。
  CODE128码有三个字符子集。每个子集可对106个可打印字符进行编码。所以每个字符在不同的子集有不同的含义。
  每个Code 128码的字符由六个元素组成:三个条,三个空。所不同的是,可阅读的注释上将把所用的控制代码了打印出来。
  注意:控制码是成对使用的,如须知详情,参阅93码规范。
  打印比例固定。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度确定。(如果旋转,则指长度)
  

^BC命令的格式:
  ^BCo,h,f,g,e,m

^BC

= Code 128条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
e = 打印UCC校验位
    默认值:Y = 打印(Yes)
其他值:N = 不打印(No)
m = 模式
    默认值:N = 不选择模式
其他值:U = UCC匹配模式。(^FD或^SN后必须有19位数字。)用FNC1值自动选择C子集。
版本16.3.0版本有效:
A = 自动模式。自动模式将分析收到的数据并自动决定选取最佳的压缩方式。^FD可以用全部ASCII字符。打印机将确定是否变化子集。四个及以上的数字将自动变化为C子集。

128码字符集

A代码 B代码 C代码 A代码 B代码 C代码 A代码 B代码 C代码 A代码 B代码 C代码
0 SP SP 00 28 28 56 X X 56 84 DC4 t 84
1 01 29 29 57 Y Y 57 85 NAK u 85
2 02 30 30 58 Z Z 58 86 SYN v 86
3 03 31 31 59 [ [ 59 87 ETB w 87
4 04 32 32 60 \ \ 60 88 CAN x 88
5 05 33 A A 33 61 ] ] 61 89 EM y 89
6 06 34 B B 34 62     62 90 SUB z 90
7 07 35 C C 35 63     63 91 EM { 91
8 08 36 D D 36 64 NUL _ 64 92 FS | 92
9 09 37 E E 37 65 SOH . 65 93 GS } 93
10 10 38 F F 38 66 STX a 66 94 RS ~ 94
11 11 39 G G 39 67 ETX b 67 95 US DEL 95
12 ' ' 12 40 H H 40 68 EOT c 68 96 FNC3 96
13 13 41 I I 41 69 ENQ d 69 97 FNC2 97
14 . . 14 42 J J 42 70 ACK e 70 98 SHIFT 98
15 / / 15 43 K K 43 71 BEL f 71 99 Code C 99
16 0 0 16 44 L L 44 72 BS g 72 100 Code B FNC4 CODE B
17 1 1 17 45 M M 45 73 HT h 73 101 FNC4 Code A
18 2 2 18 46 N N 46 74 LF i 74 102 FNC1
19 3 3 19 47 O O 47 75 VT j 75 103 A子集起始符
20 4 4 20 48 P P 48 76 FF k 76 104 B子集起始符
21 5 5 21 49 Q Q 49 77 CR l 77 105 C子集起始符
22 6 6 22 50 R R 50 78 SO m 78  
23 7 7 23 51 S S 51 79 SI n 79
24 8 8 24 52 T T 52 80 DLE o 80
25 9 9 25 53 U U 53 81 DC1 p 81
26 : : 26 54 V V 54 82 DC2 q 82
27 27 55 W W 55 83 DC3 r 83

选择UCC匹配模式的特殊情况

  1. 在^FD和^SN语句中超过19位的数据将被截去。
  2. 在^FD和^SN语句中小于19位的数据将被自动在前面加0到满19位。

CODE 128子集

  CODE128有三种子集:A子集,B子集,C子集。子集可以有两种方法选择。

  1. 可以在数据字段(^FD)的条码前加上一个特殊的转换符号。
  2. 在字段数据前加上起始字符,如果没有输入起始代码,将选用B子集。

  在一个条码内部改变子集,要将转换符号置于字段数据的合适的位置。这样新的子集将一直作用到遇到下一个转换符为止。(例如:在C子集中,数据字段中的“>7”将转换为A子集。)下表显示CODE128的转换代码与三个子集的起始代码。

替代码 十进制值 A子集字符 B子集字符 C子集字符
>< 62      
>0 30 > >  
>= 94   ~  
>1 95 USQ DEL  
>2 96 FNC3 FNC3  
>3 97 FNC2 FNC2  
>4 98 SHIFT SHIFT  
>5 99 CODE C CODE C  
>6 100 CODE B FNC4 CODE B
>7 101 FNC4 CODE A CODE A
>8 102 FNC1 FNC1 FNC1
  起始符      
>9 103 以Code A开始(成对的字母/数字)
>: 104 以Code B开始(一般的字母/数字)
>; 105 以Code C开始(所有的数字00-99)

 

Code 128的示例――B子集

  由于Code 128的B子集是最常用的子集,在字符串没有指定起始符时ZPLII默认使用B子集。以下是两个示例。

  这两个示例的条码是一模一样的。

  前两条命令(^XA^FO100,75)开始标签格式并设置字段位置。(从左上角开始)到条码字段x,y座标为(100,75)。
  第三条命令(^BCN,100,Y,N,N)打印不旋转的高度为100点的Code128条码。
  第四条命令(左图中的^FDCODE128和右图中的^FD>:CODE128)指定了条码的内容。
  第五条命令^XZ表明结束打印字段并结束标签格式。
  当UCC校验位关闭后,注释行将打印在条码下方。

  注意:左图并没有指定任何子集,所以使用B子集,在右图中,则指定使用B子集。由于ZPLII默认使用CODE B,本示例对于转换符在命令中的运用是一个很好的练习。

  Code 128 B子集是直接用ASCII文本进行编程的,除了几个数值大于94的几个特殊字符:
    ^        >    ~

  这些字符必须用转换字符来编程。

Code 128的示例――A子集和C子集

  Code 128码C子集中对对双数字进行编程。在A子集中,双数字中的每个数字都作为一个单独的字符来打印,在C子集中则作为一个码字来打印。下图右为A子集的示例。(“>9”是A子集的起始符)

  下图中左图和中图是C子集。请注意这些条码是一样的,在中图中,字母D被忽略,2和4是一对数字。

 

 

^BD UPS MaxiCode 条码

  ^BD(UPS MarxiCode)建立一个二维的、眼睛可阅读(不是被扫描)的条码。这种符号由UPS(United Parcel Service,联邦包裹服务)开发。
  代码由^FD语句如下,请注意该代码没有增加参数,所以代码不生成注释行。^BY命令对MaxiCode 无效,同样,^CV也无效。

例子:

^XA
^FO50,50
^CVY
^BD^FH_^FD0018401523828021[(>_1E01_1D961Z00004951_1DUPSN_1D06X610_1D159_1D1234567_1D1/1_1D_1DY_1D634 ALPHA DR_1DPITTSBURGH_1DPA_1E_04^FS
^XZ

^BD命令的格式:
  ^BDm,n,t

 

^BD

= UPS  MaxiCode条码

m

= 模式
    默认值: 2:送达地的信息-数字型邮政编码(美国)
    其他值: 3:送达地的信息-数字字母型的邮政编码(美国以外)
      4:标准符号,SEC
      5:保留
      6:阅读器编程
      注意:模式0和模式1已过时。如果指定模式0,则默认为模式2,默认模式值为4,模式5为整个EEC
版本14.8.0, 18.8.0, 21.8.0, 23.8.1, 23.8.2, 25.8.1,25.8.2, 22.8.5中:
5=Full EEC
n = 符号数
    默认值:1
其他值:可以在结构化的文档后增加1到8个符号。
t = 符号总数
    默认值:1
其他值:1到8,表示这个序列中的符号总数。

使用MaxiCode时^FD的注意事项

  ^FD分成两个部分:高优先信息(High Priority Message,hpm)和低优先信息(lpm).高优先信息有两种:一种是美国的邮政编码,另一种是非美国的邮政编码。符合这两种编码语法的高优先信息可以被精确地显示出来,否则就会生成错误信息。

^FD格式如下:
  ^FD

^FD

= 数据字段

= 高优先信息(只应用在模式2和模式3中)
如非特别指出,有效字符是0123456789。
    美国的邮政编码(模式2)
是 aaabbbcccccdddd
    aaa =  三位数的服务的类别
    bbb =  三位数的地区代码
    ccccc =  五位数的邮递区号
    dddd =  四位的扩展邮递区号
    注意:如果没有扩展邮递区号,必须输入四位的邮政编码。

美国以外地区的邮递编码(模式3)
是 aaabbbcccccc

    aaa =  三位数的服务的类别
    bbb =  三位数的国家地区代码
    cccccc =  六位数的邮递区号(0到9,或A到Z)
= 低优先信息(只应用于模式2和模式3中)
    信息头 [)>RS
    传送数据格式头 01Gs96
    跟踪号* 跟踪号
    SCAC* Gs
    UPS托运人号 Gs<托运人号>
    儒略历收货日 Gs<收货日>
    出货标识符 Gs<出货标识符>
    箱号 Gs<箱号/总数>
    本箱重量 Gs<重量>
    地址确认 Gs<确认值>
    出货街道地址 Gs<街道地址>
    出货城市 Gs<城市名>
    出货州 Gs<州名>
    Rs Rs
    信息结束 EOT
    *UPS自定的数据。

注意:Gs用来分隔信息中的字段。(0x1D)
Rs用来分隔格式类型。(0x1E)
Eot是结束传输字符(End of Text)(0x04)

特别注意:

  • 的格式只有在模式2和模式3中应用。在模式4中,不管数据在^FD中是怎样定义的,都将把在条码中打印出来。
  • UPS需要某些数据来表现出一种定义的风格。用UPS风格格式化MaxiCode数据,用大写字符。用UPS风格填充的字段时,其数据类型和长度必须如UPS的<条码指南>所指定。
  • 如果不选择一种模式,默认的模式为模式2,如果低使用美国以外的邮政编码,你可能会得到一个错误信息(无效的字符或字符太短)。使用美国以外的编码,请选用模式3。
  • ZPL不会根据邮递区号自动更改模式。
  • 使用特殊字符(如Gs,Rs,Eot等),使用^FH命令来告诉ZPL使用在下划线(_)后的是十六进制数值。

 

 

^BE EAN-13 条码

  ^BE(EAN-8)条码命令是类似UPC-A的条码,它在欧州和日本的零售商场得到非常广泛的应用。
  EAN-13条码有12位数据,比UPC-A多一个字符,EAN-13兼容UPC-A,但有13位数字,左手区为6位数字。第13位是校验位。
  打印比例固定。
  ^FD(Field data,字段数据)限制:必须12位,ZPLII自动在大于12位时截去超过的部分,在小于12位时在前面加上0。
  EAN-13使用模10法生成校验位进行错误检测。(参见附录C)
  注意:JAN-13(日本物品编码)系统是EAN-8中的特殊应用。在这种情况下,送给 打印机的前两位数据永远是49。
  EAN-13字符集:0到9。

^BE命令的格式:
  ^BEo,h,f,g

^BE

= EAN-13条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

 

^BF 微型PDF417 条码

  ^BF(微型PDF417)条码是二维、多层、连续、堆栈型和PDF417一样,不同之处在于PDF417使用17个模块宽的起始符终止符和左右层指示。而微型PDF417使用独特的10个模块宽的层地址符来缩短整个条码的宽度。并允许层高尽量低于2X。
  微型PDF417设计用于需要增加单位面积的效率,但又不需PDF417那样大的数据容量。它最多只打印44层 乘4列的数据。
  ^FD(Field data,字段数据)和^FH(Field Hex)限制:250个7-比特的文本字符,150个8比特的十六进制字符,或366个4比特的数字字符。
  如果想要得到更详细的信息,请参考(国际符号规范-微型PDF417),AIM国际有限公司。(AIM International ,Inc.)

示例:ZPL及其输出
^XA^BY6^BFN,8,3
^FDABCDEFGHIJKLMNOPQRSTUVWXYZ
^XZ

^BF命令的格式:
  ^BFo,h,m

 

^BF

= 微型PDF417条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置,如果^BY没有设定,则为10点
其他值:1到9999点,超出范围则设为最接近的值

m

= 模式
    默认值: 0(查表)
可选择:0-33(看下表)
模式 数据列 数据层 模式 数据列 数据层 模式 数据列 数据层 模式 数据列 数据层 模式 数据列 数据层
0 1 11 7 2 11 14 3 8 21 3 38 28 4 20
1 1 14 8 2 14 15 3 10 22 3 44 29 4 26
2 1 17 9 2 17 16 3 12 23 4 6 30 4 32
3 1 20 10 2 20 17 3 15 24 4 8 31 4 38
4 1 24 11 2 23 18 3 20 25 4 10 32 4 44
5 1 28 12 2 26 19 3 26 26 4 12 33 4 4
6 2 8 13 3 6 20 3 32 27 4 15      

 

^BI 工业二五码

  ^BI(工业二五码)条码是自校验,连续的数字型条码。工业25码是25家族码中最长的条码。在ZPLII中,25码家族还有交叉25码和标准25码。
  在工业25码中,所有信息由条组成。宽条是窄条的宽度的3倍。
  打印比例:2.0到3.0。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度确定(如果旋转,则指长度)
  字符集:数字0-9,Start(自动),stop(自动)。

^BI命令的格式:
  ^BIo,h,f,g

^BI

= 工业二五码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

^BJ 标准二五码

  ^BJ(标准二五码)条码是自校验,连续的数字型条码。
  在标准25码中,所有信息由条组成。每个条之间的宽度为2倍的条宽,宽条是窄条的宽度的3倍。
  打印比例:2.0到3.0。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度确定(如果旋转,则指长度)
  字符集:数字0-9,Start(内部使用),stop(内部使用)。

^BJ命令的格式:
  ^BJo,h,f,g

^BI

= 标准二五码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

^BK ANSI Codebar条码

  ^BK(ANSI库德巴) 条码通常广泛地用于图书馆、药品工业和快递公司的应用中。这种条码也叫作USD-4码,NW-7或27码。最初是开发来作为价格标牌用的。
  每个字符由7个元素组成。四个条和三个空。它有两个字符集:(1)数字,(2)控制符,起始符(- : . $ / +) 停止符(A B C D E T N *)。
  打印比例:2.0:1到3.0:1。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  字符集:数字0-9,Start(内部使用),stop(内部使用)。

^BK命令的格式:
  ^BKo,e,h,f,g,k,i

^B3

= Code 39条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)
e = 模43校验位
    默认值:N(No) = 不打印校验位
    其他值: Y(Yes) = 打印校验位

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
k = 起始符
    默认值:A
其他值:B,C,D,E,N,T,*
l = 停止符
    默认值:A
其他值:B,C,D,E,N,T,*

  参数k和l 确定起始符和终止符。

 

 

^BL LOGMARS条码

  ^BL(LOGMARS) 条码在美国国防部中作为39码的一种特殊应用。LOGMARS是后勤自动标识与识读符号应用(Logistics Applications of Automated Marking and Reading Symbols)的缩写。
  打印比例:2.0:1到3.0:1。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度确定。(如果旋转,则指长度) 
  字符集:同39码。
  如想知道更多的信息,请参阅LOGMARS条码规范。
  注意:LOGMARS条码必定使用模43法进行校验位的计算。如想知道算法,请参考附录D

^BL命令的格式:
  ^BLo,h,g

^B3

= LOGMARS 条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

 

^BM MSI 条码

  ^BM(MSI) 条码是一脉冲宽度调制的,连续的,无自校验的条码。它是Plessey条码的一种变形。
  每个字符由8个元素组成。四个条和四个相邻的空。
  打印比例:2.0:1到3.0:1。
  ^FD(Field Data:数据字段)限制:参数e为B时1到14位数字,C或D时1到13位数字,参数e为A时,加上静区。

^BM命令的格式:
  ^BMo,e,h,f,g,h

^B3

= MSI条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)
e = 选择校验位
    默认值:B = 1 Mod 10
其他值:A = 无校验位
C = 2 Mod 10
D = 1 Mod 10 和 1 Mod 11

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

 

 

^BP Plessey 条码

  ^BP(Plessey) 条码是脉冲宽度调制的,连续的,无自校验的条码。它是Plessey条码的一种变形。
  每个字符由8个元素组成。四个条和四个相邻的空。
  打印比例:2.0:1到3.0:1。
  字符集:0-9,A-Z。
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度确定。(如果旋转,则指长度)

^BP命令的格式:
  ^BPo,e,h,f,g

^BP

= Plessey条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)
e = 打印校验位(CRC8  2位)
    默认值: N = 不打印(No)
其他值:Y = 打印(Yes)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 

^BQ  QR条码

(^BQ)以后再译。(二维码)

^BS UPC/EAN扩展

  ^BS(UPC/EAN扩展)是出版商的ISBN(国际标准书号)的2到5位的附加数字。它是ISBN(国际标准书号)的扩展。这些扩展字符作为一个独立的条码来打印。
  由于扫描器设计用来扫描单独的UPC码,尽管扩展符兼容UPC码,但还是不能作为UPC码的一部分被扫描器识别。因为UPC/EAN扩展码有一个警戒字符(左边,编码为1011),这个字符用来表示分隔。
  打印比例:固定。
  字符集:0-9
  ^FD(Field Data:数据字段)限制:2个或5个字符,ZPLII自动截短或在左边添加0,直到满足要求。

^BS命令的格式:
  ^BSo,h,f,g

^BS

= UPC/EAN扩展条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

  UPC码,选择宽度为2个模式(默认值),打印位置为

  UPC-A UPC-E
  X轴偏移 Y轴偏移 X轴偏移 Y轴偏移
正常 209点 21点 122点 21点
旋转 0 209点 0 122点

  还有,条码必须比主条码小27点(0.135英寸),当UPC码高度为183点时(0.9英寸)扩展条码高度为155点。

  下图是如何建立一个值为7000002198,扩展码为04414的UPC-A码。

 

^BU UPC-A条码

  ^BU(UPC-A)条码是固定长度、数字、连续型的条码,它主要用于零售业的包装标签。UPC-A条码有11个数据字符。 一个8点的打印头能够按77%的比例打印条码。
  要想知道更多,可参考UPC-A条码规范。
  打印比例:固定。
  字符集:0-9
  ^FD(Field Data:数据字段)限制:11个字符,ZPLII自动截短或在左边添加0,直到满足要求。
  UPC-A码使用模10法来计算生成校验位。(参见附录C)

^BU命令的格式:
  ^BUo,h,f,g,e

^BU

= UPC-A扩展条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值: Y = 打印(Yes)
其他值:N = 不打印(No)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方
e = 打印UCC校验位
    默认值:Y = 打印(Yes)
其他值:N = 不打印(No)

注释行风格由^BY确定的窄条的宽度决定。

6点打印头:2点或以上用OCR-B字体来打印注释行,1点用A字体打印。
8点打印头:3点或以上用OCR-B字体来打印注释行,1点或1点用A字体打印。
12点打印头:4点或以上用OCR-B字体来打印注释行,1,2,3点用A字体打印。

 

^BX 数据矩阵条码

  ^BX(数据矩阵)条码是一个二维的矩阵条码。

其他以后再译

 

^BY 条码字段默认参数设置

  ^BY命令用来改变窄元素(窄条或窄空)的宽度模块。宽条与窄条的比例与条码的高度。它在一个标签格式中经常是必须的。

比例 模块宽度(点)
  1 2 3 4 5 6 7 8 9 10
2.0 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1
2.1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2.1:1
2.2 2:1 2:1 2:1 2:1 2.2:1 2.16:1 2.1:1 2.12:1 2.1:1 2.2:1
2.3 2:1 2:1 2.3:1 2.25:1 2.2:1 2.16:1 2.28:1 2.25:1 2.2:1 2.3:1
2.4 2:1 2:1 2.3:1 2.25:1 2.4:1 2.3:1 2.28:1 2.37:1 2.3:1 2.4:1
2.5 2:1 2.5:1 2.3:1 2.5:1 2.4:1 2.5:1 2.4:1 2.5:1 2.4:1 2.5:1
2.6 2:1 2.5:1 2.3:1 2.5:1 2.6:1 2.5:1 2.57:1 2.5:1 2.5:1 2.6:1
2.7 2:1 2.5:1 2.6:1 2.5:1 2.6:1 2.6:1 2.57:1 2.65:1 2.6:1 2.7:1
2.8 2:1 2.5:1 2.6:1 2.75:1 2.8:1 2.6:1 2.7:1 2.75:1 2.7:1 2.8:1
2.9 2:1 2.5:1 2.6:1 2.75:1 2.8:1 2.8:1 2.87:1 2.87:1 2.8:1 2.9:1
3.0 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1

^BY命令的格式:
  ^Byw,r,h

^BY = 改变条码默认参数
w = 模块(窄条)宽
    开机初始化值:2点
可接受的数值:1-10点
r = 宽条与窄条的比例
    开机初始化值:3.0
可接受的数值:2.0到3.0,0.1的增量(对固定比例的条码无效)
h = 条码高度
    开机初始化值:10点
可接受的数值:1点到标签高度。

  参数r,是真实的比例是和点数w有关的,关系可见上表。
  例如,选择w为9,r为2.4时,窄条宽度为9点,宽条为9X2.4=21.6点,然而,打印机将自动四舍五入到最接近的点,也就是说,宽条的度度为22点。
  这样,条码的比例是2.44(22除以9),它的比例接近于2.4。
  条码的模块宽和高(参数w和h)在任何时候可以用 ^BY修改来对后面的条码产生作用。

注意:

  1. 在一个标签格式中一旦使用了^BY命令后,它将一直作用到下一个^BY命令时。
  2. 参数h是其他条码命令忽略高度参数时,从^BY所给的h中获得高度值。

 

^BZ 邮政网条码

  ^BZ(POSTNET,邮政网)条码用于自动分检信件。POSTNET条码一系列5个条,2高3短,对应数字0到9。
  打印比例:固定。
  字符集:0-9
  ^FD(Field Data:数据字段)限制:100+字符。实际总数据由^BY的比例与标签的宽度(如果旋转,则指长度)
  注意:如果^CV(代码有效性)被激活,数据字段长度必须为5,9,或11位。如果是6位长的话,也可以用空格和“-”

^BZ命令的格式:
  ^BZo,h,f,g

^BZ

= POSTNET条码

o

= 字体方向
    默认值:^FW默认值或上一个^FW的值。
    其他值: N = 正常 (Normal)
      R = 顺时针旋转90度(Roated)
      I = 顺时针旋转180度(Inverted)
      B = 顺时针旋转270度 (Bottom)

h

= 条码高度
    默认值:由^BY设置
其他值:1到9999点

f

= 打印注释行
    默认值:N = 不打印(No)
其他值:Y = 打印(Yes)
g = 将注释行打印在条码上方
    默认值: N = 不打印在条码上方
其他值: Y = 打印在条码上方

 



你可能感兴趣的:(ZPL条码类型)