条码打印三 - Zebra最全ZPL语言指令解析

条码打印三 - Zebra最全ZPL语言指令解析_第1张图片

^LS  : 标签的位移

 条码打印三 - Zebra最全ZPL语言指令解析_第2张图片

 

^A 缩放/点阵字体
^A( 可缩放/点阵字体)命令用于内置的True Type 字体。可缩放字体(也可以认为是平
滑矢量字体)能够以点为单位来对横向、纵向进行扩展。点阵字体由点阵象素组成,通常高
度高度大于宽度。
内置的的缩放字体(A0=CG Triumvirate Bold Condensed) 默认为不旋转, 15 点高, 12
点宽。打印机将从^A 命令得到字体的旋转方向、宽度、高度等参数。
^A 命令的格式:
^Af,o,h,w
^A = 缩放/ 点阵字体
f = 字体名
默认值: 0(CG Triumvirate Bold Condensed)
其他值: A-Z,0-9 (打印机的任何字体,包括下载字体, EPROM中储存
的,当然这些字体必须用^CW来定义为A-Z,0-9 )
0 = 字体方向
默认值: ^FW默认值或上一个^FW的值。
其他
值:
N = 正常(Normal)
R = 顺时针旋转90 度(Roated)
I = 顺时针旋转180 度( Inverted)
B = 顺时针旋转270 度 (Bottom)
h = 字符高度
曲线字体:
默认
值: 15 点或上一次^CF的值。
可接受
的值:
10-1500 点
点阵字体:
默认
值:
指定点阵字体的标准高度
其他
值:
标准高度高度的整数倍, 2-10。
w = 字符宽度
曲线字体:
默认
值:
12 点或上一次^CV的值,也可以显示为0
可接受
的值:
10-1500 点
点阵字体:
默认
值:
指定点阵字体的标准宽度
其他标准高度高度的整数倍, 2-10。
值:
^A@ 使用字体名来调用字体
^A@ (使用字体名来调用字体)命令使用字体的全名,来调用字体
示例:
^XAA@N,25,25,B:CYRILLIC.FNT^FO100,20^FS
^FDThis is a test.^FS
^A@N,50,50^FO200,40^FS
^FDThis string uses the B:Cyrillic.FNT^FS
^XZ
第一行命令将查找字体卡 /后备电池 RAM(B:) 中的 “Cyrillic.FNT 字”体,当字体找到后,
命令将继续定义字符的方向,大小,然后在标签上打印字段数据“This is a test. ”
一旦 ^A@定义了 “Cyrillic.FNT ,”它的作用将一直保持到下一个 ^A@命令定义一个新字
体名时。
在本例中第二个^A@ 命令中,字符的大小增加了,设置了新的旋转方向,打印机用同
样的字体打印出字段数据“This string use the B:Cyrillic.FNT. ”
^A@o,h,w,n
^A@ = 缩放/ 点阵字体
f = 使用字体名来调用字体
默认值: 0(CG Triumvirate Bold Condensed)
其他值: A-Z,0-9 (打印机的任何字体,包括下载字体, EPROM中储存
的,当然这些字体必须用^CW来字定义为A-Z,0-9 )
o = 字体方向
默认值:上一个^FW值,如省略则为N。
其他
值:
N = 正常(Normal)
R = 顺时针旋转90 度(Roated)
I = 顺时针旋转180 度( Inverted)
B = 顺时针旋转270 度 (Bottom)
h = 字符高度(以点为单位)
缩放字体: 整个字符高度的点数,放大倍数不是必须的,因为字符是可
缩放的。
点阵字体:数值将四舍五入为字体基本高度的整数倍, 然后再除以基本
高度,得到最接近的放大倍数。
w = 字符宽度(以点为单位)
缩放字体: 整个字符宽度的点数,放大倍数不是必须的,因为字符是可
缩放的。
点阵字体:数值将四舍五入为字体基本高度的整数倍, 然后再除以基本
宽度,得到最接近的放大倍数。
n = 字体名(按照ZPL命名惯例)
如果没有指定设备号的字母,默认的设备是RAM,或R:。如果不指定字
体名,上一个^A@指定的字体仍将发生作用。
^B1 Code 11 条码
^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 码字符集进行编码,请看下表。
ASCI
I
9
3

ASCI
I
9
3

ASCI
I 93 码
ASCI
I
9
3

ASCI
I
9
3

ASCI
I
9
3

ASCI
I
9
3

ASCI
I
9
3

NUL
'
U DEL
&
P SP
Spac
e 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 = CODEBLOC条K码
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: A1 到 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_1D
159_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>( 国际符号规范-微型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 = LOGMAR条S 码
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点,宽条为9X 2.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 = 打印在条码上方
^CC ,~CC 改变格式指令前缀
^CC ,~CC (改变脱字符)指令是用于改变指令前缀。缺省前缀是脱字符( ^)。
^CC ,~CC 指令格式
^CCx ,~CCx
^CC,
~CC = 改变脱字符
x = 任何ASCII 字符
缺省值:要求有参数。如不用参数,下一字符接收后作为新的前缀字符。
注意:不要设任何和另一个前缀相同的值。
^CD ,~CD 改变ZPL 分隔符
^CD ,~CD(改变分隔符)指令是用于改变ZPLII 分隔符。这符号是用来分离输入ZPL
指令中几个参数。缺省的分隔符(,)。
^CD ,~CD 指令格式
^CDx ,~CDx
^CD,
~CD
= 改变分隔符
x = 任何ASCII 字符
缺省值:要求有参数。如不用参数,下一字符接收后作为新的前缀字符。
^CF 改变字符字体默认字体
你可用^CF (改变字母缺省字体)指令,使你程序变得更简单,
指令格式
^CFf, h, w
^CF = 改变缺省字体
f = 指定默认字体
A = 字体A (开机初始化值)
其它值: B到H,和0~9
(任何在打印机的字体,包括下载字体, EPROM贮存字体和字体A-Z 和
1-9 可通过^CW选择)
b = 单个字符点高度
可接受的数值: 0~9999 开机初始化值 =9
c = 单个字符点宽度
可接受的数值: 0~9999 开机初始化值 =5
参数f 指定所有字符字段的缺省字体。参数h 指定对每一字符字段的缺省高度, 参数指
定每一字符字段的缺省宽度。
缺省字体字母是A,如果不改变缺省字体字母( ^CF 指令),也不用任何段指令字母( ^Af )
或输入一个非法字体值,将用字体A 打印数据。
定义仅仅高或宽, 放大比例由参数定义。如值被定义, 上次所给高和宽^CF 值或缺省^CF
值。如果两个都没有定义, 使用最后一个^CF 值给出的值或默认的^CF 值给出高度和宽度。
^CI 国际字符设置
斑马打印机可打印各种国际字符字体:美国1,美国2,英国,荷兰,丹麦,挪威,瑞
典,芬兰,德国,法国1,法国2,意大利,西班牙等。ZPLII 遵循国际字符的ISO 标准。
^CI( 改变国际字体) 指令允许你调用国际字符设置给你打印。你可混合表中字符设置。
以下说明可用国际字符设置。调用一个国际字符设置指令是:
^CI x
^CI = 改变国际字体
x = 希望的字符设置
0 = USA1 (开机初始化设置)
其它可接受的值
1=美国2,
2=英国,
3=荷兰,
4=丹麦/ 挪威,
5=瑞典/ 芬兰,
6=德国,
7=法国1,
8=法国2,
9=意大利,
10= 西斑牙,
11=其它,
12=日本,
13=IBM 850 码
在版本X.7.0,16.5.0 中有效的:
14=16位( Unicode)编码的曲线字库。*
15=Shift-JIS ,日本字库的曲线字库。**
16= EUC-KANJI的曲线字库。
17= Unicode (Unicode 编码的字体)。
18-23 = 保留。
24= 8 位存取的Unicode 编码字体。
开机初始化值= 上次永久保存的值。
*编码由转换表(*.DAT) 控制。该表可由ZTOOLS 对TrueType 字库进行编码时生成。
**Shift-JIS 编码转换Shift-JIS 为JIS ,然后在JIS.DAT 中查找JIS 编码。这个表必须
当前正使用Shift-JIS 。
^CO 使用缓冲
^CO (使用缓存)指令用于改变字符缓冲大小。撟址捍鏀(这里指的是缓冲区)的定
义是保留为接收和贮存曲线字符的DRAM 的一部分。所有打印机默认使用22K 缓冲。如果
不改变缓存的大小,最大单个字符尺寸是450 点X 450 点。
斑马打印机有二种字库类型。点阵和曲线字库。字母,数字,和符号在点阵字体有一固
定尺寸。如10 点,12 点,14 点等。曲线字体是没固定尺寸, 它们的大小是由用户选择的。
由于点阵字体的尺寸是固定的, 它们可快速打印到标签上。而曲线字体要慢一点, 因为
每个字符在打印到标签前需要生成必要的基本字。调用贮存在摶撼鍞中的曲线字体可以加快
速度。
贮存在缓存里字符的数量取决于二个因素;缓存(内容)的大小和贮存字符(点数)的
尺寸。点阵尺寸大, 缓冲空间用得就多。缺省的缓存贮存每一个标签上的需要用的曲线字体
的字符。如果有同样的字符,相同旋转的方向和大小,它可以快速从缓存中恢复。
很快, 打印缓存就会满。就会发生新的字符把打印缓冲里已存在的字符清除。清除存在
的字符是由他们使用的次数决定。这里自动做的。例如,一个只用过一次的28 点的“Q”便
是一个将从CACHE 中清除的候选者。
最大尺寸单字1500 点X 1500 点缓存,要求300K 缓存。
当缓存太少时,小的字符可以打印,大的字符将不能打印。如有可能,增加缓存容量。
注意:缓存容量可按需要定义。当重定义时任何在缓冲里字符被丢失。使用点阵,图
象,下载字体等会使缓存空间减少。
^CO 指令格式
^COa, b,c
^CO = 使用缓存
a = 使用缓存
缺省值: Y=使用
其它值: N=不使用
b = 加到缓存里附加内存千字节数
默认值: 40K(如没不指定数字)
版本16.5.0 中有效:
其他值: 300(使用Kanji 字体时推荐)
c = 缓存类型
16.5.0 版本有效:
默认值: 0 = 高速缓存(一般字体)
1 = 内部缓存( Kanji 字体推荐)
注意: Kanji 需要一个内部的比一般的缓存大得多的工作缓存, 因为大多数的字体不需要这
么大的缓存,所以这是一个可选择的配置。使用Kanji 字体将大量地减少打印机用于打印
标签、图形、字体和格式的内存。
以下是用^CO 指令例子
重定义打印缓存为62K
^COY 40K (缺省内存) +22K (已存在的缓存) = 62K
重定义打印缓冲到100K
^COY 78K (增加内存) +22K (已存在的缓冲) =100K
打印缓冲执行注意事项
在打印大字符时,由^CO 指令把内存增加到缓存不是物理地加到打印机已有的22K 缓
冲上的。在以上第二个例子中, 100K 缓冲实际是两块存贮器, 22K 和78K 。
当大字符需要连续的内存块。一个字符需要90K 缓冲就不能完全贮存于100 中K 的内
存中。因为100K 缓冲中的两个内存块都不够大。如果要打印大字符时, ^CO 指令将按你
需要的实际缓存容量设。
增加缓冲尺寸将改进打印曲线字体的打印。然而,如缓存容量太大,字符太多,性能也
会下降。因为通过搜索缓冲所有字符花去很多时间,性能将会得不到改善。
^CT ,~CT 改变命令指令前缀
^CT ,~CT (改变分隔符)指令是用于改变指令前缀。缺省前缀是( ~)。
^CT ,~CT 指令格式
^CTx , ~CTx

CT,~CT = 改变鄂氏符
x = 任何ASCII 字符
缺省值:要求有参数。如不用参数,下一字符接收后作为新的前缀字
符。
用脱字符( ^)指令,你必须用格式括号指令( ^XA 和^XZ )围住。例如,改变格式指
令前缀为斜杠( /)并改变分隔符为( +),你的程序行应是这样:
^XA^CD+^CC/^XZ
你改变格式指令前缀后,你将用/XA 和/XZ 括号围上程序。
^CV 代码确认
^CV( 代码确认)是一个开关,它打开或关闭代码确认功能。当代码确认打开时,所有的
条码数据都将检查以下几种错误情况:
字符不在字符集中
校验位不正确
数据字段太长(字符太多)
数据字段太短(字符太少)
参数串包含了不正确的参数或丢失参数
检测到非法字符时,打印机将打印一个错误信息和代码来代替代码图像。信息以
“INVALID-X”的方式显示, X 是以下的错误代码:
C = 字符不在字符集中
E = 校验位不正确
L = 数据字段太长(字符太多)
S = 数据字段太短(字符太少)
P = 参数串包含了不正确的参数或丢失参数
一旦打开了条码确认功能, ^CV 将一直保持作用到下一个^CV 关闭条码确认功能。本
命令不永久保存。
注:如果存在不止一个错误,显示第一个错误。
^CV 命令的格式是:
^CVa
^CV = 条码确认
a = 代码确认
默认值: N=不检测
其他值: Y= 检测
以下例子是^CV 如何工作的。第一个示例打印出了正确的条码,其他的示例打出了错误信
息。
^CW 字体标识
所有机内字体有一字符标识如A、B、C 等。^CW (字体标识)指令分配单个字母字符
(A 到Z 和0 到9)用于下载到DRAM R :的字体,内存卡B:, EPROM E :,或内建的
Z:。
如果字符和机内字体符相同, 则下载字体代替机内字体。当格式里调用机内字体时, 下
载字体将被打印在标签上。如替换了机内字体,这改变起作用到到关机。
如给的字符是不同的, 下载字体是作为一种增加的字体。所给的字体将保存直到新的指
令输入或打印机关机。
^CW 指令格式是
^Cwa,d,f
^CW = 字体标识。ZPLII 调用时使用新的字体。
a = 替代机内字体字母或加入新字体。(要求输入一个字符)
d = 贮存字体源设备(附加。缺省是R:)
f = 下载字体名替换机内字体或增加字体。(扩展固定在.FNT。)
缺省: Unknown
以下是用^CW 指令一些例子
将MYFONT.FNT 贮存在DRAM 中,格式称为字体A:
^XA^CWA,R:MYFONT.FNT^XZ
将MYFONT.FNT 贮存在DRAM 中,增加字体Q:
^XA^CWQ,R:MYFONT.FNT^XZ
将NEWFONT.FNT 贮存在DRAM 中,格式称为F:
^XA^CWF,R:MYFONT.FNT^XZ
~DB 下载点阵字体
~DB(下载点阵字体)指令设置打印机按收下载点阵字体,定义原始单元尺寸,基准
线,空间大小和版权。
这指令由两部份组成,一个ZPLII 指令定义字体和数据结构段内每个字符字体。
以下是一个使用~DB 命令的例子。它将头两个字符下载到DRAM 中。
~DBR:TIMES.FNT,N,5,24,3,10,2,ZEBRA 1992,
#0025.5.16.2.5.18.
00FF
00FF
FF00
FF00
FFFF
#0037.4.24.3.6.26.
00FF00
0F00F0
0F00F0
00FF00
~DB 指令格式
~DBd,o.x, a, h, w, base, space, # char, ?, DATA
~DB = 设置打印机接受下载字体。
d = 贮存字体到目标设备。(固定,始终是DRAM(R:))
o = 字体名,1-8 字符,
默认值: 缺省 = Unknown
x = 扩展名, 3 字符( 固定的,始终是: FNT)
a = 字体旋转
缺省
值:
N = 不旋转
其他
值:
R = 90 ,
I = 180 ,
B = 270
目前仅支持N。
h = 最大单元的高度(点)
w = 最大单元的宽度(点)
base = 单元项的点到字符基准线
space = 空的宽度或字间距
#char = 字体字符数(这必须在下载字符数已做)
? = 版权者(最大文本串长度是63 字符)
DATA =
ASCII 数据结构定义字体每个字符。#符号表示字符码参数被分隔。字
符码是1 到4 允许国际字符集下载到打印机。
数据结构是
#×××× .h.w.x.y.i.data

××××
= 字符代码
h = 点阵高度(点)
w = 点阵宽度(点)
x = x 方向(点)
y = y 方向(点)
i = 排版移动替换(宽度包括字体字符间的间隙)
data = 十六进制点阵描述
^DD 下载直接点阵
^DD( 下载直接点阵)命令下载一个点阵到打印机,直接打印,并不保存在内存中。
注:参见~DG (下载图形),可得到更详细的关于如何计算本命令的参数的资料。
~DD 的格式:
~DD ,a,b,DATA
^DD = 下载直接点阵
a = 图形的字节总数
默认值:没有- 如果没有指定本参数,整个命令将被忽略。
其他值:相应的图形大小的字节数。
范围: 1 到99999。超出范围时设为最接近的上下限值。
b = 每行字节总数
默认值:没有- 如果没有指定本参数,整个命令将被忽略。
其他值:相应的图形大小的字节数。
范围: 1 到99999。超出范围时设为最接近的上下限值。
DATA = 定义图像的十六进制的ASCII 字符串
CR和LF可以加在需要的地方。每个字节用两位ASCII 码来表示的数字
对必须和前面所指定的数据相符,超过指定数据的数据将被忽略。逗号
将置当前行为空行(用00 填充),这样就可以使你减少传送数据。~DN
命令或其他~命令将会中断下载。
默认值:没有,必须指定
范围: 00 到FF
~DE 下载编码
标准的Windows TrueType 字体的编码是Unicode 。因此, ZPL 字段数据必须将其他
编码转换成Unicode 。它需要用^DE( 下载编码) 命令下载一个对照表。这些表由Ztools for
Windows 提供。
目前,字体转换只支JIS 和Shift-JIS 到Unicode 。
~DE 的格式:
~DEn,s,DATA
~DE = 下载极大的Unicode TrueType 的编码表。
n = 表名
默认值:没有名字 = 本命令被忽略
其他值:输入一个带标识符的目标设备的表名(最大为8 位长度)
目标设备的标识符:
R:= RAM 内存
B:= 内存卡
s = 表的大小
默认值:没有数值 = 本命令被忽略
其他值;输入所占内存的字节数
DATA = 数据串
默认值:没有数值 = 本命令被忽略
其他值:用ASCII 码表达的HEX值(2HEX/字节)
2 位的数值必须匹配表的大小。(一个字节数不足的数值会使整个命令
被忽略)
例子:
~DER:JIS.DAT,27848,300021213001...
(27848 个2 位的HEX 值)
^DF 下载格式
^DF ( 下载格式)命令以文本格式保存ZPLII 格式指令,以后可以用^XF 加上变量来调用。
保存的格式中可以包含字段数( ^FN ),以便将来参考调用。
将格式保存节省了传输时间,但并没有节省格式化时间,因为ZPL II 是作为文本串保
存的,在打印时仍须进行格式化。
如果忽略映象名,默认的名称和扩展名为UNKNOW.ZPL 。在^ XA 后马上输入^ DF
指令,输入的格式指令就会被保存起来。
注:一个包含^DF 的格式不会被打印出来。
^DF 命令的格式
^DFd:o.x
^DF = 下载和保存格式
d = 保存映象的目标设备名(固定,永远为DRAM R:)
o = 映象名, 1 到8 个字母或数字(默认的名字为UNKNOW)
x = 扩展名, 3 位字母或数字(永远是.ZPL)
以下有一个使用^DF 的示范,它将ZPLII 文本字串保存到DRAM 中,保存的文本串叫
STOREFMT.ZPL 。
^XA
^DFR:STOREFMT.ZPL^FS
^FO25,25^AD,36,20^FN1^FS
^FO135,25^AD,36,20^FN2^FS
^FO25,75^AB,11,7^FDBUILT BY ^FS
^FO25,100^AD,18,10^FN1^FS
^XZ
~DG 下载图象
~DG (下载图象)执行以下功能。
1. 置打印机为图象模式。
2. 命名图形。(这个名字将用来在标签中调用)
3. 定义图象尺寸
4. 下载十六进制字符串到打印机
注意:
1. 为使打印机明白,使用图形名时将以空格、句点、或扩展名结束
2. 避免偶然被空格替换,不要在图象名中用空格。不同图象用不同名字。
3. 如二个图象用了同一名送到打印机。第一个图象被删除而由第二个图象代替。
~DG 指令格式
~DGd:o.x,t,w,DATA
~DG = 设置打印机为下载图形模式
d = 贮存图象的目标设备。
缺省值: R: (DRAM)
其它值: B: ( 内存选件)
o = 图象名,1-8 字符,
(缺省时,用 UNKNOW作N字体名 )
x = 扩展名, 3 字符( 固定的,始终是: GRF)
t = 图象总的字节数
w = 每行字节数
DATA = ASCII 十六进制串图象定义
如目标名省略,就用UNKNOWN.GRF 作为字图象名。数据串使用ASCII 十六进制串
图象定义,每个字符表示水平方向的四个点。
以下是一个用~ DG 指令加载图象到DRAM 的例子。贮存图象名叫SAMPLE.GRF 。
~DGR:SAMPLE.GRF,00080,010,
FFFFFFFFFFFFFFFFFFFF
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFFFFFFFFFFFFFFFFFF
参数t(图形总字节数)用以下公式计算:
X (毫米) ×打印机分辨率(点/毫米) × Y(毫米) ×打印机分辨(点/毫米) /8(点/
字节) = 总字节
X 是单位毫米的图象宽度。Y 是单位毫米的图象高度。点/毫米打印机编程的打印分辨
率。
例如,确定图象8 毫米宽, 16 毫米高,打印分辨率8 点/毫米的正确t 参数其公式是:
8×8×16×8/8=1024 字节
参数w(每行字节数)用以下公式计算:
X (毫米) ×打印机分辨率(点/毫米) /8(点/字节) = 每行字节数
x 是单位毫米的图象宽充,点/毫米是打印机偏移打印分辨率。
例如,确定图象8 毫米宽,打印分辨率8 点/毫米的正确w 参数,其公式是:
8×8/8 = 8 字节
注意:
1. 所有字节中一行的字节
2. w 是t 参数计算的第一个值
参数 是一串十六进制数作为图象表示送打印机。每一十六进制字符代表水平方
向四个点。如图象前四个点是白的,后四个点是黑的。二进制码的点00001111 。十六进制
表示二进制值将是OF。完整的图象码就是这样。完整图象被送打印机是一长连续十六制值。
对~ DG 和~ DB 指令选择数据压缩方案。
斑马打印机有一数魏数据压缩方案。在~ DG 和~ DB 指令中这方案减少下载图象和点
阵字体实际数据字节数和总的时间。
下面数1,2,3,4,5,⋯⋯19 代表在后面十六进制值(注:值从G 开始O 到O 和A
到F 已经在十六进制值是使用)
G H I J K L M N O P Q R S T U V W X Y
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
例如,送M6 到打印机表示如下十六进制数据。
6666666
M 的值是7,所以传送7 个十六进制的6
g h i j k l m n o p q r s t u v w x y z
20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400
例如:送-hB 到打印机表示送十六进制数据
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
40
h 值是40 ,所以传送40 个十六进制的B。
重复值
几个重复值一起使用得到任何需要值, “vMB”和“MvB”一样,都是传送327 个十六进制
的B 到打印机。
把逗号(,)填进行,表示该行右边,都是0,
感叹号(!)填进行,表示该行右边都是1,
冒号(:)表示重复上一行。
解码和参数t 字节数打印后,打印机返回原来的打印模式。
减少下载图象时间
当用~ DG 指令时,这方法减少实际送打印机的数据字节数,在下面图6.1 和6.2 可看
到。
在图6.2 ,如果十六进制串都是到零( 0)结束。一个逗号(,)可以替代所有的零。
如果十六进制串是奇数个0 结束,需加一个零和逗号。感叹号(!)和冒号(:)在用法
如前。
警告:在你编辑器文本行将不同于ZPLII 点的行。编辑器将字把点行包裹起来。ZPLII
跳过文本行结束(如:回车和换行字符)。
注:在图6.1 和6.2 回车已经被插入每个点行的结束。
~DN 取消下载图象
^DG 在解码和打印完参数t 的字节后, 打印机返回一般模式。用~ DN(取消下载图象)
指令。图象模式可以取消原来打印操作恢复。
~DN 指令格式
~DN
~DN :取消下载图象
注意:任何^ 或~指令将结束下载。
~DS 下载曲线字体
~DS(下载曲线字体)指令是用于设置打印机接收下载曲线字体和定义字体尺寸的字
节数。
~DS 命令和所需参数,转换用户输入字体结果到斑马打印机。这转换用斑马应用程序
工具称为ZFONT 。斑马公司有此应用程序。
~DS 命令的格式
~ DSd:o.x,s,DATA
~DS = 设打印机接收下载曲线字库
d = 贮存图象的目标设备。
缺省值: R: (DRAM)
其它值: B: ( 内存选件)
o = 字体名,1-8 字符,
(缺省时,用 UNKNOW作N字体名 )
x = 扩展名, 3 字符( 固定的,始终是: FNT)
s = 字库长度的字节数,这数字由ZFONT程序产生,不能被改变。
DATA = ASCII 十六进制字串的字体定义。
数据由ZFONT程序产生。不会被改变。
以下是转换曲线字体前三行下载到打印机例子。如有需要源和目标设备名可以被改变。
~DSB :CGTIMES.FNT,37080 ,
00FF00FF00FF00FF
FF0AECB28FFF00FF
注:下载曲线字体不能进行完整性检查。如被损坏,打印机将产生无法产生预料的结果。
~DT 下载TrueType 字体
必须用Ztools for Windows 来转换TrueType 字体为斑马打印机的可下载格式。这个
程序建立一个含有~DT(下载TrueType 字体)的命令,一旦下载完毕,字体将象其他软件
一样使用。
~DT 命令的格式
~DTf,s,DATA
~DT = 下载曲线字库
f = 字体名
默认值:没有名字 = 本命令将被忽略
其他值:在目标设备后输入TrueType 字体名。(最长8 位)
目标设备:
R: = RAM 内存
B: = 内存卡
s = 字体长度的字节数,
默认值: 没有 = 如果没有,本命令将被忽略
其他值:输入字体的斑马可下载格式所需的内存的字节数。
DATA = ASCII 十六进制字串的字体定义。
默认值:没有,本命令将被忽略。
其他值:用ASCII 表示的十六进制数。( 2 位字符/ 字节)
必须匹配参数S所给的值,否则,本命令将被忽略。
例子:
~DTR:FONT,52010,00AF01B0C65E......(52010 个2 位的HEX 值)
~DU 下载极大的TrueType 字体
有一些国际字体超过了256 个可打印字符,这些字体是用~DU 来下载到打印机,作为
大TrueType 字体来使用的。
字段块( ^FB )命令不支持大型TrueType 字体。
~DU 命令的格式
~DUf,s,DATA
~DT = 下载大型曲线字库
f = 字体名
默认值:没有名字 = 本命令将被忽略
其他值:在目标设备后输入TrueType 字体名。(最长8 位)
目标设备:
R: = RAM 内存
B: = 内存卡
s = 字体长度的字节数,
默认值: 没有 = 如果没有,本命令将被忽略
其他值:输入字体的斑马可下载格式所需的内存的字节数。
DATA = ASCII 十六进制字串的字体定义。
默认值:没有,本命令将被忽略。
其他值:用ASCII 表示的十六进制数。( 2 位字符/ 字节)
必须匹配参数S所给的值,否则,本命令将被忽略。
例子:
~DTR:KANJI,86753,60c0ca017b0ce7......(86753 个2 位的HEX 值)
^EF,~EF 初始/擦除贮存格式
^EF 或~EF(删除格式)指令删除所有贮存格式。如你使用删除格式指令你将删除所有
保存的格式。(保存格式可以用^ID 指令选择删除)
^EF 或~EF 指令格式
^EF 或^EF
^EF, = 删除格式
^EF
^EG 或~EG 从DRAM 中删除所有图象
^EG 或~EG (删除下载图象)指令是用于从DRAM 中删除所有图象(标签格式图象和
十六进制图象)
~EG 或^EG 指令格式是
~EG 或^EG

EG,
^EG
= 擦除下载图象
^FA 字段分配
用^FA (段分配)指令分配字段存贮空间
^FA 指令格式
^FAn
^FA = 段分配
n = 被存贮字符数字空间
缺省值:没。如无指定值指令跳过
最小 = 1 ,最大 = 256
版本14.4.0,15.4.0,20.4.0,23.6.0,25.6.0 中有效:
最大值为3072
^FB 字段块
^FB(段块)指令允许你在一个定义摽槔嘈蛿格式中打印文本。这指令格式^FD 文本串
放在一指定带原点,字体,和旋转文本块中。这指令也包含一个自动的字回绕功能。
^FB 指令格式
^FB a, b, c, d, e
^FB = 定义段块
a = 文本块行点的宽度。
有效
数据:
最小 = 一个字符的宽度。
最大 = 标签宽度。
缺省值:=0
许可值: 0~9999
注:值如小于字体宽度或不对,文本块将不打印出来。
b = 文本块最大行数
缺省值: 1 行
许可值: 1 到9999
注:文本最大行数将复盖上次行数。改变字体尺寸将自动增加或减少块
尺寸。
c = 增加或删除行间点的空区
缺省值: =0
许可值: -9999 到+9999
注:如前面没有负号,数字认为是正数。正值加空区;负值删空区。
d = 块内文本对齐
缺省值 = L (左)
许可值: L(左), C(中心), J(边到边)和R(右)
注:如用“ J”,最后一行为左对齐。
e = 第二左边。点的宽度,第二行和以后所有有行文本块将被缩进。
许可值: 0-9999
以下是一个^FB 指令数据段结果的例子。
注意^FB 指令的一些注意事项
以下组合有特殊意义:
“/&” = 回车/换行
“/(*) ” =软连字号(单词断开时使用),如果连字符放在一行的最后,它会被
打印出来, 如果它不是在在一行的最后, 将会被忽略。( 在^B7 中忽略)
“// ” = 字符\, ( 注意必须选择^CI13 ,使它能打印 /)
第一条:要打印一个/必须使用^CI13 进行国家代码选择。
第二条:如软连字符接近一行的最后,该连字符将被打印。如不放在最后一行附近,它
将被跳过。
(*) 表示任何字母/数字字符。
如果一个字在一行太长(没有软连字符),一个连字符将自动放在块的左字上。剩
下字将放在下行。(连字符的位置取决于字长度而不是音节边界,放置一连字符表
示连字符就会出现该单元)
最大数据串长度是3K 包括控制字符和回车/执行
通常回车/换行和词间隙在行断时被放弃
当用^FT (段排版) ----^FT 是用文本上行基准线增加字体尺寸将使文本块从底到顶
尺寸增加(可使打印超过标签顶)。
当用^FO (字段原点)增加字体大小将使文本块从顶到底尺寸增加
如果^SN 替代^FD ,字段将不打印。
^FS 结束^FB 语句,每个块要求有自己的^FB 指令
^FD 字段数据
^FD(字段数据)指令定义字段的数据串。字段数据可以任何可打印字符除了那些指令
前缀(如^和~)。
^FD 指令格式
^FDa
^FD = 输入字段数据
a = 打印数据
注意:
1. 字段数据串最多3072 字符
2. ^ 和~字符可以改变前缀字符而打印出来。见CC 和CT 指令(注:新的前缀字符不
能被打印)
3. 字符ASCII 码超过127 时或者用^FH 和^FD 打印^ 和~字符。
版本V14.4.0,15.2.1,20.4.0,23.6.0,25.6.0 有效:
过去,在^FD 中的字符都是CR/LF 都是被忽略的,然而在^B7(PDF417 条码)和^FB( 字段块)
命令中,所有^FD 中的CR/LF 都成为有效字符,
以上^FD 语句里CR/LF (回车/换行)是被跳过。在^B7 (PDT417 码)和^FB (段块)指令
时。CR/LF 在^FD 指令里是合法字符。
用以下办法完成指定的功能。
“/&” =回车/换行
“/(*) ” =
软连字号(单词断开时使用),如果连字符放在一行的最后,它会被
打印出来, 如果它不是在在一行的最后, 将会被忽略。( 在^B7 中忽略)
“// ” =字符\, ( 注意必须选择^CI13 ,使它能打印 /)
(*) = 任意字母/数字
注意:
1. 要打印/,必须选择^CI13
2. 如果软连字符置于一行的最后, 连字符会被打印出来, 但如果没有放在一行的最后,
它将会被忽略。
^FH 字段的十六进制表示
^FH(十六进制段) 指令允许你在^FD 语句里直接输入任何十六进制值。^FH 指令必须
在每个^FD 指令前才能用。
在^FD 语句里, 十六进制标识必须在每个十六进制值前。缺省的十六进制标识是下划线
(_)。
这指令可以用在任何有数据段的指令里,(如^FD ,^FV (段变量),和^SN (串行数
据))。
有效的十六进制字符是
0 1 2 3 4 5 5 7 8 9 A B C D E F a b c d e f
^FH 指令格式
^FHa
^FH = 字段十六进制形式
a = 十六进制标识
开机初始化值 =_ ( 下划线)
其他许可值:除了当前格式前缀或控制前缀的任何字符。
例:
^FO100 , 100^AD^FH^FDTilde_7e Used for HEX^FX
^FO100 , 100^AD^FH^FDTilde /7e Used for HEX^FX
以上二行将产生以下结果
Tilde ~ used for HEX
^FN 字段编号指令。
^FN (数字段)指令用于数据段数字。这指令用于贮存格式和调用格式操作。
在贮存格式, ^FN 指令用在正常的^FD (数据段)指令的地方。在调用贮存格式时,用
^FN 结合^FD (数据段)指令。
^FN 指令格式
^FNx
^FN = 字段编号
a = 字段所赋的编号值
缺省值: 0
其它值:最小=1,最大=9999
注意:
1. 同一^FNx 值可被贮存在几个不同段里。
2. 如一个标签格式包含一个^FNx 和^FD ,段的数据将用任何其它同^FN 的值打印。
^FO 字段位置
^FO 命令设置字段的位置,相对于由^LH 命令指定的标签原点。^ FO 命令设置字段
的左上角的位置。
^FO 命令格式:
^FOx,y
^FO = 设置字段位置
x = X 轴的点数
缺省值: 0
许可值:最小=1,最大=9999
y = Y轴的点数
缺省值: 0
许可值:最小=1,最大=9999
注意:如果x,y 的值太大,它将置打印位置于标签之外。
^FP 字段参数
^FP (字段参数)命令增加到ZPLII 中是为了支持Kanji 字符集。这个命令旋转字库而
不用在字段中旋转字符。
^FP 指令格式
^FPd,g
^FP = 字段参数
d = 方向
H = 水平打印
V = 垂直打印
版本14.8.0,18.8.0.21.8.0,23.8.1,23.8.2,25.8.2,22.8.5 中有效:
R = 反相打印(从右向左)
g = 另加的字间距
范围: 0-9999
注意:使用反相打印时,^ FT 所指定的位置是最右边的字符的左下角。
示例:
^XA^FPV,10^AG^FDtest^XZ
^XA^FPR,10^AG^FDtest^XZ
^FR 字段反相打印
^FR (颠倒打印段)指令允许出现的段白变黑或黑变白。打印字段时,如打印点是黑则
变白,如点是白则变黑。
^FR 指令格式
^FR
^FR = 颠倒打印段
以下是怎样使用FR 指令的例子。
^XA
^FO100,60^GB100,203,203^
FS
^FO180,100
^CFG^FR^FDFIELD^FS
^FO130,170
^FR^FDREVER^SEFS
^XZ
注意:
1. 这些字段位图是放在格式指令指定段点阵里, 在标签格式中用^FR 指令超过一次时
须当心。
2. ^FR 指令的结果不会在另一个字段出现(如,文本后跟^FR^GB )如以上例子。
^LR 颠倒打印标签
^LR(颠倒打印标签)指令颠倒在标签格式中印有打印段。它允许一个段由白变黑或由
黑变白。当打印一个段,如果打印点是黑的,它变白;如果点是白的,它变黑。
用^LR 是等同于用^FR 在印有当前和分区内的。
^FR 指令格式
^LRa
^LR = 颠倒打印标签
a = 颠倒打印
缺省值: N=不反相打印标签
其他值: Y=是
开机初始值= N
(如无参数指令跳过)
以下是怎样用^LR 指令的例子。
注意
1. ^LR 将保留到^LRN 指令转换或)打印机关机
2. ^LR 指令结果是不到直到一个段重叠如上面例子所示。
3. 仅仅在这指令后的段被影响。
^FS 字段分隔
^FS (段括号)指令表示字段定义结束。段括号指令可以用一个简单ASCII 控制码SI
(Ctrl -O, 十六进制OF )代替。
^FS 指令格式
^FS
^FT 字段排版
^FT( 段排版)指令也是设段位置, 和标签起始^LH 命令关系。字段位置在旋转时不改变,
段排版原点是被固定。
^FT 指令格式
^FT x, y
^FT = 字段排版
x = x 方向点数
缺省值: =上次格式段位置
许可值: 0~9999
y = y 方向点数
缺省值: =上次文本格式段位置
许可值: 0~9999
以下定义^FT 怎样在文本条码,图象,框,镜像时工作。
文本──原点是字符串起始,压字体的基准线。一般基准线在大多数字符底部,除了
那些下行字符如 “g,”“y等”。
注:当座标缺失时,位置被跟着上次格式字段。这种记忆功能将使字段和其它字段
位置简单化。当第一个段被定位,其它段跟着自动定位。
条码──原点是条码的基准点,如有条码下面解释行,或条码有防护条时也是。
图框──原点是在杠的左下角。
映象──原点是在矩形镜象左下角。
重要注意
有几个例子,当用^FT 指令时,最好使用a 和b 参数。
1. 标签格式第一个段定位
2. 任何^FN (段数字)指令
3. 顺序^SN (串行数据)指令
^FV 可变数据段
^FV (可变数据段)指令替换在标签格式中可变的数据段^FD (数据段)指令:
^FV 指令格式
^FV
^FT = 可变数据段
a = 被打印的可变数据段。0-255 个字符[ 如无数据输入指令跳过]
版本14.4.0,15.4..0,20.4.0,23.6..0,25.6.0 中有效:
最大字符串长度= 3072
以下是怎样用^MC 和^FV 指令的例子。
^XA
^FO55,60^FVVARIABLE DATA #1 ^FS
FO80,150^FDFIXED DATA^FS
^MCN^XZ
VARIABLE DATA #1
FIXED DATA
^XA
^FO55,60^FVVARIABLE DATA #2^FS
^MCY2
VARIABLE DATA #2
FIXED DATA
注意: ^FV 段在标签打印后始终被清除
^FW 字段方向
以后再译
^FX 注解
^FX(注释)指令是非常有用,当你要在标签格式中加入摲谴蛴信息注解。任何^FX 指令
后的数据到下一脱字号( ^)或否定号(~)指令间在标签格式中无任何结果。
^FX 指令格式
^FX < data >
^FX= 注释
< data > = 摲谴蛴指令解释或改
以下怎样用^FX 指令的例子:
注:通常做法是在数据后跟^FS 指令。
理解^FO 和^FT 指令
FO 是定义打印在左上角。FT 是定义打印在左下角。
^FO 和^FT 指令段位置和起点位置^LH 指令有关系。而排版原点^FT 在不同旋转时段基准不
改变,段原点^FO 在不同旋转时,段区域不改变。
以上是^FO 不同于^FT 在颠倒时的例子。
注: ^FT 可以容易地用在旋转段,设旋转时,只需计算段起始位置。许多字体摷涓艨涨鴶使
字串长度^FO 定位计标困难。^FT 定位允许各种长度几个段撈鹗紨在同上位置。
以下是一些怎样用^FO ,^FD ,和^FS 指令例子。
用^FO ,^FD 和^FS 例子1
注意^FO 和^FD 的值
用^FO ,^FD 和^FS 例子2
注意^FO 和^FD 在标签上的改变。
介绍装置名
ZPLII 目标(图像镜像,标签格式,下载字体等)被分配到各种装置名的存贮区内。装置名
被标识DRAM , RAM ,DPROM 等。允许贮存,调用拷贝,删除, ZPLII 目标进/出指定区
域。
每一个这样的区被分配一个标识的装置名,装置名是用下列一个单个字母表示。定义是:
R:打印机DRAM (读/写)
B:附加内存(一个卡或工厂安装)
E:外加EPROM 贮存目标(只读)
Z:内部ZPLII 贮存目标库(只读)
几个ZPLII 指令用这装置名。装置名对大多数ZPLII 指令是一个附加参数。缺省值被个别
ZPLII 指令定义。
建立和删除目标缺省是打印机DRAM 。调用目标搜索用过的是DRAM ,RAM 外加EPROM ,
内部ZPLII (R:, B;, E:, Z:, *或?(所有))。
ZPLII 目标名和扩展名介绍
每个ZPLII 目标(图象镜像,标签格式等)必须一个名。这名将包含两个部分。一个目标名
一一个扩展名。目标名可以1~8 个字符长度。扩展名由3 个字符组成。目标名和扩展名的
约定和MS 桪OS 文件名和扩展名约定相同。
几个ZPLII 指令用这些目标名。目标名不能缺省必须输入。扩展名可缺省定义如下。ZPLII
指令中,如扩展名没有,不完全,不正确将用缺汔。定义ZPLII 目标名扩展如下所述。
.ZPL ZPLII 标签格式( ^DF 或^XF )
.FNT 斑马格式字体( ^DB, ^DS 或^XA )
.GRF 斑马桌陈格式( ^DG,^IS,^IL,^XG 或^IM )
2── 25
ZPLII 指令中,目标名和扩展名可用星名( *)和问号(?)替代。
ZPLII 指令用装置和目标名
ZPLII 指令支持友数名的装置名和目标名在前一页已描述了。
这些指令是
~DG 下载图象
^XG 调用图象
^IS 图象贮存格式
^IL 加载镜像
^DF 文本贮存ZPLII 格式
^XF 调用ZPLII 格式
^ID 镜像删除
^HW 主目录例表
^WD 打印目录
~DB 下载点阵
~DS 下载大量字体
参数名的组成由1 到8 个字符组成,装置名跟着目标名和扩展名在个别指令里缺省与/或用
星号( 8)和问号(?)替换定义。
2── 26
定义和使用AUTOEXEC.ZPL 功能
打印机支持AUTOEXEC.ZPL 文件功能。它的功能和MS-DOS 中AUTOEXE.BAT 文件方
法相同。它可以用于打印机开机时设置各种参数(如^COY, ^LL, ^CWN 等),它也可以在
开机后任何时候调用。
这文件必须在外加EPROM 中初始化。当打印机开机,它寻找外加EPROM 中贮存格式调
用AUTOEXEC.ZPL 。它找到后,文件内容贮存格式被自动执行。
用电池驱动字体卡
^JB (复位坏电池)指令有如两个条件。
1) 如电池供电的电池驱动字体卡失效或被更换。这指2) 令必须送打印机复3) 位。(电
池坏将在配置表中显示摰绯鼗禂)。
注:如电池被更换而这指令不送打印机。电池驱动字体卡将没作用。
4) 需要清除(重初始化)电池驱动字体卡。
3──1
打印机配置
在多数情况下,打印机可以通过面板或各种ZPLII 指令配置。一个配置指令被打印机接收,
通常将改变当前标签格式和以后任何标签格式, 直到打印机被关掉。下一标签打印反映在新
的指令里。
本节将讨论怎样用ZPLII 打印机配置指令。以下是这些指令的制表。
^MM (打印模式) ?设置打印机到四种基本模式之一,撕断,回线,剥离和切刀。
^MT (受热纸型) ?设置打印机为热敏纸或热转移纸。
^MD (标签深度) ?调整打印机深度也即是调整打印机摲⑷任露葦。
^LT (标签顶) ?转换打印从当前标签起点位置向上或向六十四个点。
^SS (设标签传感器) ?允许用户复盖行有已建立标签外貌内部值。
^MP (禁止模式开关) ?用于禁止面板深度,位置和校准模式(仅在STRIPE 打印机
有效)。
^JZ (出错重打) ?由于错误条件打印不完全或不正确重打标签。
3──2
^JV (配置更新) ?允许用户保存当前设置
^SZ (设ZPL )?允许用选择ZPL 或ZPLII 编程语句。
打印机配置指令必须有一有效的参数。错的或无效参数指令全被跳过。当打印机配置指令被
输入,它将一直有效直到打印机关机或不同参数指令又输入时才改变。
如果你要保存你已修改的,有两个方法可做。
1) 输入指2) 令到打印机后, 3) 按面板SETUP/EXIT 健两次。SAVE CHANGES
PERMANENT 显示在液晶显示器上。(你需按一个黑色随圆键直到PERMANENT 显示)
按NEXT 键。字SAVING PERMANENT 和PRINTER READY 先后显示。你的改变已被贮
存。
4) 用^JVS 指5) 令
仅对STRIPE 打印机
1)当指令被输入打印机,按面板上MODE 键器( 4)次,然后按PAUSE 键(顺序
通过MODE 操作直到仅PAUSE 灯亮)
2)用^JUS 指令
打印模式
^MM (打印模式)指令是确定一张或一组标签已被打印后打印机的动作。有四种不同操作
模式。
1) Tear Off? 打印后, 2) 标3) 签空区进到撕板上, 4) 标5) 签连着底纸, 6) 可
以用于撕下。
7) Rewind? 标8) 签和底纸被回绕在一个(附件)外加回绕装置, 9) 下一张标10 ) 签
定位在打印头下(无回送动作)。
11 ) Peel Off? 打印后, 12 ) 部分标13 ) 签从底纸上被分离。打印停止直到标14 ) 签
被取走。底纸被绕在只绕底纸的回绕轴上(注:选用回绕轴已装在打印机内)。
15 ) Cutter? 隔着空区打印的和下一标16) 签被送进切17) 纸器, 18 ) 标19) 签切
20 ) 下。标21 ) 签被控回进打印机继续打。
^MM 指令格式
^MM= 打印模式
x = 要求模式
T = 撕下
R = 回绕
P = 剥离
C = 切刀
A = 保留
(如参数错或不正确指令跳过)
I. V. P = 上次被贮存参数值
3──4
^MM(纸的类型) 指令告诉打印机行选用纸的类型(连续或不连续) 这指令里有二个选择。
1) Continuous Media ? 这纸没有物理标2) 识(如:空区, 3) 槽, 4) 孔剥分离标5)
签, 6) 标7) 签高度由^U 指8) 令决定(在P2 桺9 页描述)
9) Non-Continuous Media 椪庵接形锢肀?0 ) 识(如:空区, 11) 槽孔等) 分离标12 )

^MN 指令格式
^MN x
^MN = 纸类型类
x = 行用纸
Y = 非连续纸
N = 连续纸
(如参数错或不正确指令跳过)
I. V. P = 上次被贮存参数值
3──5
^MT (纸种类)指令选择打印机行用纸的种类。这指令里有二种选择
1) 热转印纸?这纸用黑炭或彩色色带, 2) 色带上油墨被烧在纸上。
3) 热敏纸?纸被志应上热而4) 不5) 需通常
^MT 指令格式
^MT x
^MT = 纸种类
x = 厅用纸
T = 热转印纸
D = 热敏纸
(如参数错或不正确指令跳过)
I. V. P = 上次被贮存参数值
^MD (标签深度)指令调整与当前设定深度的关系,最小值-30,最大30。
^MD 指令格式
^MD x
^MD = 标签深度
x = -30 to 30 取决于当前值(正号不要求输入?敽牛?
(如参数错或不正确指令跳过)
I. V. P = 0
^MD 指令格式
如当前值(配置表上值)是16 ,输入指令^MD-9 将减和至7。
如当前值(配置表上值)是1,输入指令^MD15 将减和至16 。
如当前值(配置表上值)是25 ,输入指令^MD-9 将减和至30。
至允许的最大值
注:每个^MD 指令是相对于当前值(配置表上值)是分开等待。
例如:如果有两个^MD-6 指令被接收改变当前值到9,另一指令^MD2 被接收,当前值被改
到17 。两个^MD 指令都是以当前值15 计算的。
标签顶位置
^LT( 标签顶)指令从当前标签顶位置移动输入标签格式上下最大64 点行。负值移向标签的顶
部。正值远离标签顶部。
这指令用于完成标签适当位置,而不改变任何已有参数。
注:这指令不改变标签起始位置。
^LT 指令格式
^LT x
^LT = 标签顶
x = -64 to 64 行(正值不要求输入?敽牛?
(如参数错或不正确指令跳过)
I. V. P = 上次被贮存参数值
设标签传感器
^SS (标签传感器)指令是用于改变在摫昵┬W紨过程被设标签,空区,色带和标签长度值
(摫昵┬W紨处理在用户掼撆渲玫接τ脭章节里详述)以下是阐述标签传感器图形的例子。
注意数字从000 到100 和词WEB ,MEDIA 和RIBBON 出现在那些数字的关系。并注意黑
色垂直峰值。这代表打印机感受到运动从标签到空区到标签。
注:标签和传感器图形产生在你的打印机上可能和这里看到的不同。
^SS 指令格式
^SS w, m, r, l, m2, r2
^SS = 设标签传感器
w = 空区的3 位数值( 000 到100 )
缺省值;显示在标签传感器图形或配置表上。
m = 标签的3 位数值( 000 到100 )
缺省值;显示在标签传感器图形或配置表上。
r = 色带的3 位数值( 000 到100 )
缺省值;显示在标签传感器图形或配置表上。
l = 标签长度点的4 位数值( 0001 到9999 )
缺省值;值计算由撔W即頂。(参见配置表)
m2 = 标签发光管强度的3 位数值( 000 到100 )
缺省值;值计算由撔W即頂。(参见配置表)
r2 = 色带发光管强度的3 位数值( 000 到100)
缺省值;值计算由撔W即頂。(参见配置表)
I. V. P = 上次被贮存参数值
注:搈2 敽蛽r2 斨刀詓tripe 打印机无效
注:这指令仅用在STRIPE 打印机
^MP (模式保护)指令用于禁止各种面板MODE 功能。当禁止后,这模式功能不能被改变
而指示灯联系的灯也不亮。
这指令仅有一个参数。每个模式禁止需分别用^MP 指令。
^MP 指令格式
^MP x
^MP = 模式保护
x = 模式保护
缺省值:不改变
其它按变值:
D = 禁止深度模式
P = 禁止位置模式
C = 禁止校准模式
E = 允许所有模式
S = 禁止所有模式贮存(模式可以调整但不能被贮存)
(参数错或不正确指令跳过)
^MP 指令例子
禁止浓度和校准模式,必须送打印机如下:
^XA ^MPD ^MPC ^XZ
3── 11
现错重打
^JZ( 出错重打)指令用于重打因色带完,标签完,或打印头打开等不完全打完标签。当错误
条件被排除标签重打。
这指令将得持到另一^JZ 指令送到打印机或打印机被关^JZ 指令格式
^JZ 指令格式
^JZ = 出错重打
x = 出错重打
Y = 是I. V. P.
N = 不
(参数错或不正确指令跳过)
^JZ 指令改打印机出错模式(如^JZ 被改变,仅对改变后标签起作用)。
3── 12
配置更新
^JU (配置更新)指令设置改变打印机配置
这指令中有三个选择,定义如下,
S = 贮存当前设置
当前配置将被贮存,这配置将被用在开机时
F = 加载工厂值(缺省)
工厂值(缺省值)将被加载
(这值如不用^JUS 指令贮存在关机时将丢失)
R = 取上次贮存值
上次用^JU 指令或从面板mode 贮存的值将被加载
^JU 指令格式
^JU x
^JU
x = 配置改变
F = 加载工厂(缺省)
R = 取上你贮存值
S = 贮存当前值
(参数错或不正确指令跳过)
3── 13
设ZPL
^SZ (设ZPL )指令是用于选择打印机使用的程序语句。这指令给你选ZPL 或ZPLII 打印
标签格式。
这指令将保持到另一^SZ 指令送到打印机或打印机关机
^SZ 指令格式
^SZ a
^SZ = 设ZPL
a = 设ZPL
1 = ZPL
2 = ZPLII
I. V. P = 上次被贮存参数值
(参数错或不正确指令跳过)
3── 14
启动用户配置格式
启动配置格式等节约大量时间, 大多数打印机只用一至二种标签。你可针对标签容易做出标
签格式。
如你需要改变各种指令打印特殊标签。当你换完标签后改变适当配置格式。
取决于你特殊的应用,下表指令可以加入配置表内。
^XB 抑制回送
^PR 打印速度
^LL 标签长度
^MM 打印模式
^MT 受热纸型
^JZ 出错重打
^SS 设标签传感器
^MD 标签深度
^MN 标签深度
^JV 配置更新
^SZ 设ZPL
注:像许多格式配置一样,当你需要时给出不同名字指令送到打印机。
4──1
标签文本
在斑马打印机上打印标签文本, 必须选择一个以上打印字体。文章讨论可用打印字体和ZPLII
指令
斑马字体
大多数斑马打印机有标准8 位点阵字体和一字体表。另外允许下载点阵和字体表字体。
字符尺寸和密度(出现深度)取决于打印头和所用标签。三种不同打印头可用6 点/mm ,8
点/mm 和12 点/mm 。
内部点阵字体可被按原尺寸(缺省)放大2 到10 们。放大因子是整数,所以如果原尺寸点
阵是9 点高和5 点宽。放大因子是3 产生的字符27 点高和15 点宽。高和宽可被单独放大。
4──2
理解点阵字体的放大因素
本章大多数指令包含参数有输入打印字符高和宽。输入是点的值。当输入点阵字体值用以下
公式计算。
基本高度×放大因子=高度参数值。
(同样原理计算宽度)
例子:
基本点阵长是9 点
基本点阵宽是5 点
放大3 倍字符
高度参数27
宽度参数15
注:结果正确,必须使用参数正确,见表4.1 到4、5、在P4? 到P4?0 页。
国家符号指令
^GS (图象符号)指令不允许你产生注册商标和版权符号,图象符号格式指令是。
^GS= 图象符号
a = 字体方向
缺省值: N=不转或上级^FW 值
其它值:
R=顺时针90 度
I=颠倒180 度
B=反转, 270 度
b= 字符点高度
缺省值:上次^CF 值
c= 字符点宽度
缺省值:上次^CF 值
用^GS 然后用^FD 取( A 到E)适当字符数据段语句产生所需符号。
字符字体指令
各种^AX (选字符字体)指令是用来选择所需字体。三个参数在这条指令里定义字体旋转,
字符高度和字符宽度。
^AX 指令格式
^Axa, b, c
^A= 字符字体
x= 选点阵字体;
如值不正确或不具体指令跳过
其它值: A 到Z,和~ S
(任何打印机内字体包括下载字体, EPROM 贮存字体和字体A-2 和1-9 都可通过
^CW 选择)
a= 字体方向
缺省值: ^FW 定义或上次^FW 值
其它值:
N=不转
R=旋转,顺时针90 度
I=颠倒, 180 度
B=反转, 270 度
对点阵字体
b= 字符点高度
缺省值:标准点阵字体原型高度
其它值:高度乘2 到10 倍,标准高度增加整数倍。
c= 字符点宽度
缺省值:标准点阵字体原型宽度
其它值:宽度乘2 到10 们,标准宽度增加整数倍。
4──7
阶梯字体
b= 字符点高度
缺省值: 10 点或上次^CF 值
其它值: 10 到1500 取决于内存/字符尺寸
c= 字符点宽度
缺省值: 10 点或上次^CF 值
其它值: 10 到1500 取决于内存/字符尺寸
用^AX 指令例子
比例间隔
比例间隔不同于固定间隔,在表4.4 ,字间空隔(字符间的空)对字体A 到H 是变化的面所
有字间空是相同的。例如在搈w 敿涞目蘸蛽IE 敿涞目障嗤?/P>
基准线是所有字符底部(基准)起始的想象线(除了下行字母)。基准线和轮廓底部区域用
于字符下行字母。基准线在表4.4 定义。基准线和轮廓顶部位置关系。例如,字体揈數幕
枷呤窍蛳侣掷ゲ?3 点。
点阵字体尺寸
字符段指令参数b 和c 控制放大率, 所以对字体最后尺寸。参数确点的点数ZPLII 实际用一
整数倍于原高/宽。例如,你用的
^AD, 54
你三倍于原尺寸( 54 点高)得到字体。而你用了
^AD, 52
你得到同样结果(设52 点高字符)
高成宽放大率的比例由参数定义。如不被定义,就用^CF 的高和宽。如高是两们于标准高,
宽是两倍于标准宽。
注:如有一个^CF 指令,带有高度和宽度定义是设置第一和字体,任何以后^AX 指令(选
择不同字体) 必须带高和宽参数填入内。如不这样, 所选字体将用^CF 高和宽参数放大。以
下是一个产生的例子。
4── 12
平滑字体尺寸
^A(阶梯字体) 指令是建立在阶梯字体( A=CG Triumvirate Bold Condensed )阶梯字体(也
称光滑失量字体)尺可能水平,垂直字符尺寸或在二个方向一点一点过渡。
(不能用在斑马STRIPE S300 打印机)
平滑字体( A)缺省是不旋转。一个字符高15 点宽12 点。打印机打印平滑字体是取决于今
A 指令中旋转,高和宽参数
^A 指令格式
^Aa, b, c
^A= 平滑字符字体
a= 字体旋转
缺省值: N=不转或上次^FW 值
其它值: R=旋转,顺时针90 充
I=颠倒, 180 度
B=反转, 270 度
b= 字符等
缺省值: 15 点或上次^CF 值
许可值: 10-1500 点
c= 字符宽
缺省值: 12 点或上次^CF 值
许可值: 10-1500 点
下载平滑字体和点阵字体不同处
对平滑字体之间的空区产生相同。字符空区之间的高和宽起来近似。等于这个完成通过打印
机内的平滑算法。
在点阵字体里, 空区是在字体里, 实际上点阵字体的高是大于宽。点阵字体是字符单元最大
尺寸。
标准斑马Code Page 850 字符值大于十六进制20。六个十六进制字符值低于十六进制20
也能被认得。以下框图显示这些字符值并打印出。
注:不认识字付值将缺省一空格。
下载矢量字库
建立矢量字量字体所有点参数指令被翻译南来进入元素。打印机把点参数转换到一些元素。
矢量字体工作在元素里,不是点决定多少点需送特别元素,用以下公式:
(元素尺寸) ×(打印机每英寸点数)
点= ──────────────────
72
用6 点/毫米打印头的打印机摯蛴』坑⒋绲闶龜值是152.4
用8 点/毫米打印头的打印机摯蛴』坑⒋绲闶龜值是203
用12 点/毫米打印头的打印机摯蛴』坑⒋绲闶龜值是304.8
注:实际元素尺寸将是一个近似值。
实际字符点的高和宽非常取决于字体风格和特别的字符。所以有些字符会比实际要求点的尺
寸小或大。
所有矢量字体基准线是点的单元尺寸当场计算的。基准线是单元顶到底的四分之三。例如,
如单元尺寸是56 个点。基准线将是60 点( 3/4 )从顶到底。
除了文本和条码外,斑马打印机可打三种图象
框和线
图象贮存在ZPLII 标签格式
十六进制图象
ZPLII 有一个格式指令在任何标签格式中建立框和线。标签格式中贮存图象和数据在打印时
可以合并。另外ZPLII 图象打印来源可从其它已被建立(或转换到)十六进制格式。这样图
象来源可来自各方面,包括CAD 程序,画,刷程序和扫描图象这章描述画图象所需ZPLII
指令。
6──2
^GB(图象框)指令用于标签格式中画框和线,框和线可用于突出重要信息。区分标签各个
区域,或使标签看起来整齐。
画框和线是同样格式指令
^GB 格式指令
^GB= 图象框
w=框的宽度(点)
缺省值:厚度或一个点
最小值: 1 点
最大值: 9999 点
h= 框的高度(点)
缺省值:厚度或1 个点
最小值: 1 点
最大值: 9999 点
m= 线的厚度
缺省值: 1 点
最小值: 1 点
最大值: 9999 点
c= 线颜色
缺省值: B=黑
其它值: W= 白
对w 和h 参数,记住打印机有6,8,12 点/毫米缺省。打出153. 203 或300 点每尺寸。确
定w 和h 值,算出这方向毫米乘6, 8, 或12。
注:在下页例子对8 点/毫米打印机设计。
6──3
画框例子
以下是画一个1 英寸高, 1.5 英寸宽和10 个点厚的框的指令。
画垂直线例子
以下是画一个1 英寸高和20 高厚的垂直线指令
画水平线例子
以下是画一个一英寸长和30 点厚的水平线指令。
^XG(调用图象) 指令是调用一个或更多图象打印。这指令用于标签格式图象合并如公司标
记,一个局部和文本数据组成一完整标签。
一个图象可以根据格式需要多次调用和改变大小。其它图象数据也可以被加进格式。
^XG 指令格式
^XG < Sve: > Objectname < .ext >, x, y
^XG= 调用图象
Sve: = 贮存图象原装置
附加,缺省是搜索最先的
Objectname = 贮存图象名, 1-8 个字符缺省用揢NKNOWN 斆?/P>
.ext = 扩展名, 3 个字符固定的,始终是.GRF
x = x 方向放大因子。
缺省值: 1
最小值: 1,最大值: 10
y = y 方向放大因子
缺省值: 1
最小值: 1,最大值10
以下是用^XG 指令调用图象从DRAM 中SAMPLE.GRF 然后打印5 个不同地方和5 不同尺
寸在同一标签上的例子。
移动图象
^IM (移动图象)指令执行一个点阵图象直接从贮存原里移动。这指令同样调用图象指令而
没尺寸参数。
^IM 指令格式是
^IM < Svc: > Objectname < .ext >
^IM = 移动点阵字体
Svc: = 被移动图象的源装置
附加的,缺省时搜索最行先的
Objecname = 贮存图象名, 1-8 字符(缺省,用揢NKNOWN 斆?/P>
.ext = 扩展名, 3 字符固定,始终是.GRF
注1:用^FO 指令,国家可以定位在标签任何位置。
注2:在^IM 和^XG 指令间的区别是图象移动指令没有放大,所以所需格式时间较少。更进
一步,这图象必须是在8,16 或32 撐粩。
以下是移动原始尺寸的从DRAM 中的SAMPLE.GRF 图象打印在5 个地方。
图象在标签格式中工作过程
^IS (图象贮存) ^IL(图象加载)指令是用于贮存ZPL 标签格式(包括文本与/或条码)作
为一特殊图象在打印机的DRAM 中。这使你可以增加产生一系列相似但不相同的标签。
贮存图象中段的内容(如建立一临时), 然而在以后标签格式中, 指令的输入调用图象格式
和数据合并。
在内存中贮存图象标签格式
^IS (图象贮存)指令用ZPLII 标签格式贮存图象格式的。这指令用在标签格式中典型的是
在最后。它指示打印机贮存图象标签格式而不是ZPLII 码文件。图象可以以后被调用,不在
格式时间及复盖整个标签可用数据。
用这技术复盖图象内容信息和数据极大增强产生标签格式能力。如目标名省略, 将用缺省名
揢NKNOWN.GRF?
^IS 指令格式是:
^IS 指令格式是
^IS < Dst: > Objectname <.ext >, x
^IS = 贮存图象格式
Dst. = 贮存图象目的装置
缺省值: R: (DRAM)
其它值: B: ( 附加内存)
Objecname = 图象名, 1-8 字符(缺省,用揢NKNOWN 斆?/P>
.ext = 扩展名, 3 字符( 固定,始终是.GRF )
x = 贮存后打印图象
缺省值Y=是
其它值N=不
6── 13
以下是用^IS 指令贮存标签格式到DRAM 中的例子。用于贮存图象名是SAMPLE2.GRF
以下是贮存图象格式标签的另一例子。
从内的中调用标签格式
^IL( 图象加载)指令是用在一个贮存的格式图象加载标签格式的开始, 并和附加数据合并, 图
象始终定位在^FOO ,0
用这技术复盖图象住处和数据,极大增强了产生标签格式能力。
^IL 指令格式
^IL < Svc: > Objectname < .ext >
^IL = 加载点阵图象
Svc: = 贮存图象源装置
附加的,缺省时搜索最新的
Objecname = 图象名, 1-8 字符(缺省,用揢NKNOWN 斆?/P>
.ext = 扩展名, 3 字符( 固定,始终是.GRF )
以下是调用贮存在DRAM 中图象SAMPLE2.GRF 并复盖附加数据的例子。
在贮存装置间传送目标
传送目标
^TO (传送目标)指令是用于拷贝一个或一组目标从一个贮存装置到另一个。它十分象PC
机中拷贝功能。
(不能在斑马STRIPE 打印机上用)
源和目标装置必须被支持且必须不同和合法的动作。非法参数将使指令跳过。
这指令中没缺省值。而星号( *)可用于替代目标和扩展名,如ZEBRA.* 或*.GRF 将可在
^TO 指令中被接受。
^TO 指令格式
^TO Sve: Objectname .ext , Dst: Objectname .ext
^TO = 传送目标
Svc: = 贮存目标源装置R: , B:
Objectname = 贮存目标名(支持用替换符)
.ext = 扩展名, 3 字符。(支持用替换符)
Dst: = 表示贮存的目的装置。R: , B:
Objectname = 贮存目的中目标名(支持用替换符)
.ext = 扩展名, 3 字符。(支持用替换符)
注1:如目的装置没有足够空间贮存目标文件,输入操作将被否定。
注2:斑马文件( Z: *.* )不能被传送,这些文件具斑马技术合同版权。
以下是一些用^TO 指令的例子
从DRAM 中拷贝目标ZLOGO.GRF 到附加内存卡且改名为ZLOGO1.GRF
^XA
^TOR: ZLOGO.GRF, ⋯⋯
^XZ
从附加内存卡中拷贝目标SAMPLE.GRF 到DRAM 并保持同一文件名。
^XA
⋯⋯
^X2
传送多个目标
星号( *)能从DRAM 到内存卡传送多个目标文件(除了*.FNT )。例如你有几个目标文件
包含标记。这些文件是LOGO1.GRF ,LOGO2.GRF 和LOGO3.GRF 。
例如⋯⋯
你要把所有LOGO 文件传送到内存卡并用NEW 文件名。
用星号( *)放在LOGO 和NEW 后面。你可用一第指令拷贝所有文件。
格式如下:
^XA
⋯⋯
^X2
注:在多个目标传送中, 一个文件太大而不能存在内存卡里, 它就跳过。所有剩下文件将检
查是否能贮存。那些能贮存的将被贮存。
6── 17
从内存中删除图象
^ID (删除项目)指令从选择贮存区或一组中删除目标、图象、字体、格式等。这指令可以
用在打印格式中象前面贮存一个新的一样删除目标或者简单的删除目标单独类型。
目标名和扩展名支持用星号( *)作为替换符。允许简单删除一组目标。
^ID 指令格式
^ID < Sve. > Objectname < .ext >
^ID = 删除图象(目标)
Svc. = 目标贮存的源装置R: , B:
Objectname = 贮存图象名, 1-8 字符(缺省,用揢NKNOWN 斆?/P>
.ext = 扩展名, 3 字符(缺省是.GRF )
以下是用^ID 指令的各种例子。
从DRAM 中删除贮存的格式:
^XA⋯⋯ ^XZ
从DRAM 中删除名为SAMPLE 格式和图象,不考虑扩展或。
^XA⋯⋯ ^XZ
删除图象SAMPLE1.GRF 贮存SAMPLE2.GRF
^XA
^XZ
删除DRAM 中每一个文件:
~XA⋯⋯^XZ
前面几章已经表了用ZPLII 建立标签的基本指令。这章将介绍信息和指令是更先进技术如特
殊效果,非打印注解,串行数据段,控制指令和程序限制。
打印的特殊效果
ZPLII 包括几个撎厥庑Ч麛指令。
打印一个镜象
^PM (打印标签镜象)指令打印在标签打印区里做一镜象。这指包括镜象从左到右反过来。
^PM 指令格式
^PMa
^PM= 打印镜象
a= 镜像打印
Y=是
N=不{上次贮存参数=不}
(如无参数指令跳过)
以下是怎样用^PM 指令的例子。
注: ^PM 指令将保存到^PMN 指令把它关闭或打印机关机。
^SN (连续数据)指令允许打印机选择顺序数据段递增或递减。
(例如,例数据段值递增或递减)在每次被打印的标签上。
在一个给定的格式里可以有超过100 到150 字符段或条形码段。顺序数据最大12 位整数。
第一位整数是从右到左顺序段数起。
如字符数字顺序到最后带有字母字符, 数据将被扫过, 字符接字符从右到左直到碰到数字字
符为止。连续数据要发现第一个数字值才执行。
用零引导
在^SN 指令中, 揨敳问龆ㄒ 嫉牧闶欠癖淮蛴』蛞种啤U飧霾问娜笔≈凳遣淮蛴∫ 剂恪
H【鲇谟媚囊桓鲋担╕=是,打印引导零; N=不,不打印引导零)打印机按照以下方式。
打印引导零
起始值最右边的连续数字。宽度(连续数的位数) 决定被扫描是从右到左直到第一位非数字
(空格或字母)被发现。建立一特别宽度需要另加上引导零。
抑制引导零
起始值最右边的连续数字,包括引导空格、宽度(连续的位数) 决定被扫描是从右到左直到
第一位字符(除了空格)被发现。建立一特别宽度,需要另加上空格或零。抑制零被空格替
代。在连续处理中, 当输入数包含有零中, 最后零不抑制。在这种情况下只打印单一的零。
注:如在顺序打印标签时打印机纸或色带用完, 在撚猛陻发生前被打印的标签摬糠謹在以后
第一张标签打印(标签或色带被替换和校准完成后) 时是相同的序列号。这就是在撚猛陻前
没完全打印的最后标签重打。这也可以由^JZ 指令控制(见3-11 页)
顺序数据指令替换段数据( ^FD )指令,它带有标签格式程序。
^SN 指令格式
^SNv,n,z
^SN= 顺序数据
v=起始值
缺省值: 1
其它值:最大12 位数字
n= 增加/减少值
缺省值: 1
其它值:最大12 位数字
注:对于减少值,需给一个带减号( -)值
z=如需要加引导零
缺省值: N=不
其它值: Y=是
以下是怎样用^SN 指令例子
注:增加/减少发生在每一个串行数据段里, 而所有每个串行数据重复打印是由打印数量^PQ
指令的搑敳问龆ā?/P>
可变数据
你可启动可变数据段程序增加输出量。替代每次标签被打印的整个格式中变化的数据段格式。
用这方法,你必须用^MC 和^FV 指令。
点阵清除
在正常操作下, 一个格式被打印后点阵被清除。^MC(点阵清除) 指令是用于保存当前点阵。
这应用是保存当前生以后的标签直到用^MCY 指令清除。
^MC 指令格式
^MCx= 点阵清除
x=y= 是(清点阵) {1.V.P= 不}
N=不(不清除点阵)
注: ^MCN 指令保存当前标签格式化后镜象。它将出现在下一打印标签的背景里。
^FD 段不被清除
贮存格式
你能建立一个格式并反它存在临时内存里。一个贮存格式可以调回和下载数据合并成一个完
整标签。这处理节约了传送时间而不是格式时间。如果优化输入装置使它不工作特别有用。
建立格式如下
设计标签。
替抚数据段可变数据。
分配段尺寸空间。
给格式名。
贮存格式到打印机。
你可贮存多个格式,在DRAM 容量内。如你想贮存格式超过内存大小,格式不被贮存。格
式没被贮存时你不要接收出错信息。你要知道格式没有贮存仅仅当你调用它(是不能做的)
或你要打印格式列表。
如关电源,印有在DRAM 中贮存格式都会丢失。
下载格式指令
^DF(下载格式)指令贮存文本串ZPLII 格式指令和以后用^XF 可变数据合并。格式可以被

调用贮存格式
^XF(调用格式)调用一个贮存格式并和可变数据合并。可多次调用^XF 指令且在标签格式
的任何地方。
当调用贮存格式并利用^FN(数字段合并数据时, 调用格式必须包含^FN 指令去适当合并数
据。
当用贮存格式减省传送时间时, 打印时所需的格式时间由ZPLII 从贮存的文本串调用, 则不
格式的时间就省下了。
^XF 指令格式
^XF
^XF= 调用贮存格式
{Srci}= 贮存镜像的源装置。
{附加、缺省时是先搜索到的}
objectname= 贮存镜像名, 1-8 字符
(缺省,用揢NKNOWN 斆?/P>
{.ext}= 扩展名, 3 个字符
{固定的,始终是.ZPL}
以下是^XF 指令从DRAM 中调用STOREFMT.ZPL 格式并送新的数据。
^XA
^XFR :STOREFMT.ZPL^FS
^FN1^FDZEBRA^FS
^FN2^FDPRINTER^FS
^X2
本地目录列表
^WD (标签上打印目录)指令打印条形码标签列表,贮存在DRAM 中目标,或字体(如果
打印机有安装在ROM 附加字体)。
对条形码列表会显示条形码名字。对字体列表会显示用^AX 指令和尺寸的字体, 数字名字。
对DRAM 中贮存目标列表会显示目标名、扩展名、尺寸和樗。所有列表包括在双线框内。
^WD 指令格式
^WD<{Src:Objectname.ext}>
^WD= 标签上打印目录
{Src:}= 贮存镜像源装置
{附加的,缺省时是搜索到的}
Objectname= 目标名
{附加的。缺省是?敗?斠材鼙挥脈
{.ext}= 扩展名
以下是用^WD 指令例子。
打印DRAM 中所有目标列表。
^XA^WDR : *。*
^XZ
打印所有字体列表
^XA^WDE :
^XZ
使用贮存格式更多例子
当调用和合并格式中某些可贮存格式指令工作包含设计和节约贮存格式。
变数据时
以下是一个怎样用各种贮存格式指令的例子。首先, 输入以下格式并关到打印机。注意是没
标签被打印的。(数据灯批示会闪一下)。
然后,输入以下格式并关打印机。标签就会被打印出来。
控制指令
控制指令可在任何时候从主机关出并立即在打印机上响应。控制指令可以一组也可以学了。
控制指令可以由软件直接送打印机(如清除内存),物理动作(如移到下一起始位置),或
组合(如走一张空标签并计算贮存它的长度)。
所有控制指令的基本格式是
~(指令)
测试和启动指令
以下指令依字母表顺序介绍, 是用于测试打印机各种单元和它的状态。送~HM(内存状态)
指令到打印机,立即返回状态信息到主机。用这指令使你知道内存状态。
见附录E 这信息解释
送~HS (主机状态)指令到打印机,立即有三行打印状态信息返回主机。用这指令使你任何
时候可以知道打印机状态。
见附录D 这信息解释。
~JR(开机复位)指令复位所有打印机的内部软件,执行开机,自检清缓冲和DRAM ,复位
通讯参数和缺省值。~JR 执行同手册上开机同样的功能。
本页信息不能在斑马STRIPE 打印机上应用
~JN(打印头测试报错)指令复位打印头针出错指示, ~JO 转换起作用。如任何以后打印针
执行测试发现打印头坏时打印机进入规定状态。(如转换打印头指示器在稳定状态)。
~JO(打印头测试不报错)指令压制打印头针状态出错检查而允许继续打印。当打印机关机
或接收到一个~JR 或~JN 指令这压制被取消了。如果~JO 压别起作用打印头测试将不产生
报错。
~JT(打印头测试间隔)指令让你改变打印头测试间隔100 到任何的希望。打印机自动执行
一个内部打印头针测试在每100 张标签一次。这测试发生是一打印最小延迟。所以这测试
可以使打印机执行处于暂停。
^JT 指令格式
^JTxxxx
^JT= 打印头测试间隔
xxxx= 四位数表示测试间的标签总数
缺省值: 0100
许可值: 0000-9999
校准和走纸指令
以下指令按字母顺序用于执行各种打印机标签色带校准和设置走纸模式。
^JC (设标签传感器校准)用于作用一标签长测量和再校准标签和色带传感器值。
注:在连续模式,仅标签和色带传感器被重校准。
^JG(传感器校准图象)是用于作用标签长度测量,再校准标签和色带传感器并打印传感器
值的图象(标签传感器图)。
^JL (设标签长度)是用于没标签长度。取决于标签尺寸,打印机将送一或更多张空标签。
^MF (走纸)指令命令摽鷶时标签怎样。
^MF 指令格式
^MFp,h
^MF= 走纸
p= 开机时走纸动作
缺省值: F=走纸到传感器后第一个空白。
其它值: C=(见~JC 指令)
L= (见~JL 指令)
N=(不走纸)
H=关打印头后走纸动作
缺省值: F=走纸到传感器后第一个空白
其它值: C=(见~JC 指令)
L= (见~JL 指令)
N=(不走纸)
取消/消除指令
以下指令控制斑马输入缓冲内容:
NJA(全部取消)指令取消缓冲所有格式指令。也取消任何可打印的批处理。打印机将在当
前标签(如正在打印)打印完成后停止打印。所有内部缓冲数据被清除。揇ATA 數苹峁乇
铡?/P>
~JP(暂停和取消格式)指令,清除当前处理格式和使打印机处于暂停状态以后缓冲格式被
清除直到缓冲空白。当缓冲空白和无东西传送揇ATA 斨甘镜乒乇铡?/P>
输出~JP 指令等同于用打印机的取消键。除了打印机没有先在暂停状态。
~JX(取消当前部分输入格式)指令取消当前被送到打印机的一个格式。对当前正打印的任
何格式无作用,或对以后再送的格式也无作用。
打印机控制指令
以下指令控制各种打印和操作。
~PH 或^PH (回到起始位置)指令使打印机送一空白标签。
~PH 指令是当前被打印格式完成或当打印机牌暂停时送一空白标签。
^PH 指令是在打印格式后送一空白标签
~PP(程序暂停)指令是当前标签被打印(如一个标签正被打印)后停止打印使打印机牌暂
停状态。
^PP(程序暂停)不是立即的。所以在暂停起作用前有八张标签可能被打印了。在打印格式
后这指令使打印机暂停。
这操作等同于在打印机面板上按暂停键。打印机将保持暂停直到再按暂停键或~PS 指令送
打印。
~PS(打印开始) 指令使打印机在暂认定状态恢复打印。这操作等同于当打印机已经在暂停
状态时按打印机面板上暂停键。
^PF(回到点数行) 指令是使打印机回到标签(高速移动标签不打印) 点数行, 在标签底部。
当标签底部是空的允许快速打印。
^PF 指令格式
^PHx
^PF= 回到点数行
x= 点数行移动
缺省值:没。如设值或不正确值指令跳过。
许可值:最小=0,
最大=9999
^PQ(打印数量)指令有几个打印操作。它控制打印标签数量,打印机暂停打印标签数量,
每个序列号复制数量。
^PQ 指令格式
^PQ= 打印数量
q= 打印标签总数
缺省值: 1;
许可值: 1-99,999,999
P=暂停(懽閽)计数
缺省值: 0=不暂停
许可值: 0-99,999,999 暂停间的标签数
r=每个序列号的复制数
缺省: 1=不复制
许可值: 1-99,999,999 复制
0= 不考虑暂停计数
缺省值: N=不
其它值: Y=是
^PQ? 挷问档慕馐?/P>
?挷问璩蒠,打印机每组标签计数(慞挷问┍淮蛴『蟛辉萃! ?/P>
?挷问璩蒒,(缺省),打印机在每组标签计数被打印后暂停。
^PQ 指令的例子
^PQ50 ,10 ,1,Y:打印总数50 张标签每个序列号只打一张。打印每组数量是10,但在
每组间不暂停。
^PQ50 ,10 ,1,N:打印总数50 张标签每个序列号只打一张。打印每数量是10 ,每组打
印后暂停。
^PR (打印速度)指令决定标签打印速度和回转速度(送一空标签)
^PR 指令格式
^PRP,S
^PR= 打印速度
P=打印速度
缺省值:速度A
许可值: A 或2 50.8 毫米/秒( 2 英寸/秒)
B 或3 76.2 毫米/秒( 2 英寸/秒)
C 或4 101.6 毫米/秒( 2 英寸/秒)
5 127 毫米/秒( 2 英寸/秒)
D 或6 152.4 毫米/秒( 2 英寸/秒)
E 或8 203.2 毫米/秒( 2 英寸/秒)
S=回转速度
缺省值:速度D
许可值: A 或2 50.8 毫米/秒( 2 英寸/秒)
B 或3 76.2 毫米/秒( 2 英寸/秒)
C 或4 101.6 毫米/秒( 2 英寸/秒)
5 127 毫米/秒( 2 英寸/秒)
D 或6 152.4 毫米/秒( 2 英寸/秒)
E 或8 203.2 毫米/秒( 2 英寸/秒)
打印机选择速度操作直到以后重输入格式或打印机关机。
打印机速度应用举例。打印质量取决于标签、色带、打印速度和打印操作模式。运行测试你
的应用是非常重要的。
高速打印限制
仅在热转印模式。
水平方向条形码在速度每秒2?5 (毫米)时可以打印X 方向最少5mil 。
旋转条形码在高速打印时X 方向最小10mil( 模工)。在每秒2 斒笨梢訶方向5mil( 模1)。
字体A 在放大率1 时是不推荐;其它所有字体都可接受。
改变回缩顺序
~JS (改变回缩顺序)指令是用于控制回缩顺序。这指令能用在打印机是否带切工时用。
(斑马STRIPE 打印机不适用)
主要应用是: 1)通话在连续纸切边撈鹗嫉銛编程。2)当打印机用在打印/加应用配置时提
供在剥离标签后立即回缩。
这指令仅起作用到打印机关机, 新的~JS 指令送打印机或在面板上改变它。当碰到~JS 指令
时,它将取代当前撁姘鍞设置的回缩顺序
~JS 指令格式
~JSx
~JS= 改变回缩顺序
x= 缺省值: N=当前打印机模式的正常操作
其它值: A=打印(切纸)后回缩
B=打印(切纸)前回缩
面板设置控制回缩顺序调整不用密码保护,在打印模式设置后,它显示
BACKFEED SEQ
有三个选择AFTER PRINT , BEFORE PRINT 和DEFAVLT ,这面板设置能被永久贮存。
注:
~JSx 指令已被^XBA 和^XBB 指令替代(在ZPL 版本8.1.0 )。
^XB 操作正常。
^XB(抑回缩)指令抑制标签向前到撕断位置取决于当前打印机模式。当设不向前送时,下
一标前打印前回缩就不需要了。所以打印能力将被改善。当批量打印时, 最后的标签也不含
有这指令。
^XB 指令格式
^XB= 抑制回缩
在撕断模式:
正常操作一回缩,打印,送到起始点
^XB 操作一打印(如回绕器模式)
在剥离模式:
正常操作一回缩,打印,送到起始点
^XB 操作一打印(如回绕器模式)
设点数/毫米
^JM (设点数/毫米)指令指令改变每毫米点数。取决于打印头,正常斑马打印机政党每毫
米点数是12 点/毫米( 304 点数/英寸), 8 点/毫米( 203 点数/英寸)或点/毫米( 153 点数
/英寸) 。在有些应用中。不要求这些高分辨率。对那些应用要选择纸分辨率4 点/毫米(102
点/英寸), 3 点/毫米( 77 点/英寸)
如使用这指令必须在第一个^FS 指令之前。
^JM 指令格式
^JMx
^JM= 设每毫米点数
x= 缺省值: A=12 点/毫米, 8 点/毫米或6 点/毫米
其它值: B=6 点/毫米, 4 点/毫米或3 点/毫米
显示控制指令
(本页信息不适用于斑马STRIPE 打印机)
^KP (定义密码)指令是用于定义必须进入面板开关和LCD 设置模式的密码。
^KP 指令格式
^KP
^KP= 定义密码
= 强制四位密码
^KL (定义语言)指令是用于选择面板显示的语言。
^KL 指令格式
^KLx
^KL= 定义语言
x= 缺省值: 1=英语
其它值: 10= 西班牙
改变分隔符和指令前缀
有些应用,你可能需要改变ZPLII 分隔符(缺省摚瑪)格式指令前缀(缺省揯敚?或控
制指令前缀(缺省:搤敚S媚阊〉娜魏蜛SCII 字符改变它,成一个恰当的指令。
如你用的手持终端不能输入ZPLII 指令的逗号, 如果你工作在大型机处理一个脱字符有困难,
而一些其它的字符很容易作用,那你就可以这样做。
通讯诊断指令
斑马打印机通过硬件和软件控制支持通讯诊断,你可以用这诊断程序问题。~JD(允许通讯
诊断)指令初始诊断模式产生ASCII 输出(用当前标签长度和打印机的全部宽度)打印机
接收的所有字符。这输出包括ASCII 字符十六进制值和任何通讯错误。
~JE (禁止诊断)指令取消焦模式返回打印机正常标签打印。
主机状态指令
主机目录列表
^HW (主机目录列表)是用于传送一目录列表到内存区(贮存装置)返回到计算机(装置
提供输入打印机)。这指令将用ASCII 格式串目标名通过主串口送主机。
行每个参数是固定长度,行的总长度也是固定的。每厅目标列表用星号( *)开始紧跟是一
空格。目标名有8 格, 3 格扩展名。扩展名跟踪空格,然后是6 格目标尺寸, 2 个空格和3
格附加樗(保留将来使用)。
格式是这样。

-DIR R: XX
*Objectname.ext(2sp.6obj.sz.)(zsp.)3 option flags)
*Objectname.ext(2sp.6obj.sz.)(zsp.)3 option flags)

-xxxxxxx bytes free

注: = 文本起始, = 回车/换行, = 文本结束
这指令可以以单独文件类型在任何时候输入打印机。当指令被接收后, 打印机将在执行完其
它任务后马上返回目录列表。
注:记住,这指令被打印机接收后处理的。而不象~HS 马上处理。
^HW 指令格式
^HW<{Sre:objectname.ext}>
^HW 返回主机目录列表
{Sre:}= 目标列表源装置。
{可选,缺省是DRAM}
Objectname= 目标名
{可选,缺省是?敗?斠材鼙挥谩
以下是用^HW 指令例子
把DRAM 所有目标例表送到主机:
^XA^HWR : *.*^XZ
主机识别
~HI (主机识别)指令是设计用来从主机送到斑马打印机而找出斑马打印机类型。接收后,
斑马打印机将送到主机如下信息。
XXXXXX , V1.0.0 , 12,512KB ,X
XXXXXX= 斑马打印机瑾
V1.0.0= 软件版本
12= 点/毫米
512 或1024KB= 内存
X=附加识别
主机验证
^HV(主机验证)指令是有于从指定段返回数据。带着附加ASCII 头送到主机。它可以被用
于用^FN 指令(见7-12 页)已被分配任何段数字。
^HV 指令格式
^HVX ,Y,
^HV= 主机验证
X=指定段数字
缺省值: 0;
许可值: 0-9999 。
Y=返回的字符数
缺省值: 8 字符;;
许可值: 0-256 。
= 头(大写ASCII 字符)
缺省值:无;
许可值: 0-256 字符。
打印配置表
~WC (打印配置表)指令用于产生打印配置表。
注:这指令仅在打印机空闲时才工作。
开始打印
^SP(开始打印)指令允许当一完整标签被完成格式前标签在指定位置开始打印。在复杂标
签末端,这指令可以增加打印的量。
这指令工作如下。你用^SP 指令指定工作的点行。然后建立一标签懚螔。当^SP 指令处理
时,所有在段的信息被打印。在打印处理时,所有以后^SP 指令将连续被打印机接收和处
理。
如以后^SP 指令段(或标签剩余段)已准备打印,标签不停止运动。如下一段没准备好,
打印机将停在摫昵┲袛并等下一段将备完。^SP 指令的精确位置是会由于打印速度和标签
复杂性产生尝试性错误。
^SP 指令有效的使用决定最差情况打印质量。如^SP 指令特殊应用使用恰当你可照如下过
程。如你送第一个^SP 指令标签格式后,在送下一段前需系列打印机停下来,打印的标签
将展示最差情况打印质量。它也将用命令调到任何段。
注:如你用以上段过程,标签格式的最后必须如下:
^SP#^FS
在以一注解中, 标签长度800 点行有一^SP500 指令。在段2 被接收和格式时段1 将被打印。
^SP 指令格式
^SPx
^SP= 开始打印
x= 打印起始的点行
缺省值: 0
其它值: ^LL (标签长度)指令内任何数字。
网络
注:网络指令功能仅在14.0.1 以上版本才行
如你的打印机有RS-232 接口, 可以作为斑马打印机网络链的最后一台打印机。所有在网络
中其它打印机必须有两个RS-232 接口
对斑马STRIPE 打印机用在网络上特别考虑是
打印机必须是链中最后一台打印机。
打印机必须编上唯一的识别号。这数字由^NI 指令分配。
任何时候仅有一台打印机和主机通讯。
分配打印机识别
^NI (网络识别号)指令用于分配打印机网络识别号。在打印机连上网前必须做完。
^NI 指令格式
^NIxxx
^NI= 网络识别号
xxx= 分配到打印机识别号
工厂缺省值: 000
许可值: 001-250
注:值必须是三位数或者被跳过。如果这样,用最后的^NI 值。
注:最后网络识别号设置将是系统识别的那一个。
打印机连到网络上
~NC (网络连接)指令用于把一个特别打印机连上网络,把打印机的网络识别号唤醒。
~NC 指令格式
~NCxxx
~NC= 网络连接
xxx= 打印机网络识别号
缺省值: 000 (如同没有)
许可值: 001-250
使用特定网络上打印机需在任何标签格式开始用这指令。这指令必须包括在所有标签格式中
以摶叫汛蛴』鷶。这数必须是三位数字长度。
设所有打印机透明状态
~NR(设所有网络打印机透明) 指令设置网络中所有打印机, 不考虑识别号或当前模式使它
们都处于透明
~NR 指令格式
~NR
设当前连接打印机透明
~NT (设网络打印机透明)指令设当前连接网络打印机透明。
~NT 指令格式
~NT= 设网络打印机透明
怎样初始网络
1) 关闭所有打印机然后再开
2) 给第一台打印机唯一三位数。所有斑马打印机从出厂进识别号是000 。你要分配一个识
别号( 001-250 )给每一台斑马打印机。如你用计算机网络特别重要。
3) 用~NT 使第二步中打印机处于透明模式
4) 重复5) 第二步和第三步直到网络中所有打印机有一唯一分配号。
7── 14
使用网络
网络打印机使用如下:
1) 用~ Ne 给每台打印机一个三位打印机号码。
2) 设第一台打印机为透明模式, 3) 用~ NT ,4) 这样你可继续下一台打印机。
重复第1 和第2 步在你的网络
注:如你关了网络中一台打印机,所有这台打印机后的打印机都不再有用。
A──1
附录A 桝SCII 码表
下页内容ASCII (American Standard Code For Information Interchage )用于斑马打印机
的码表。
在表中那些有阴影框的字符不推荐用于命令前缀,格式前缀或分隔符。
A──2
B──1
附录B 椖?0 校验位
计算确定模10 校验位如下
1) 从位置1 数字开始(左手位), 2) 在偶数位值相加
0+2+4+6+8+0 = 20
3) 第一步结果乘3
20×3 = 60
4) 从位置2 数字开始, 5) 在奇数位值相加。
1+3+5+7+9 = 25
6) 第一步和第三步结果相加
60+25 = 85
7) 校验位(第12 位)是最小的数字使得当它加第4 步结果产生是10 的倍8) 数
85+x = 90 (下-10 的倍数)
x = 5 校验位
以下是说明以上例子的条码。右边数( ?敚┦切Q槲?/P>
C──1
附录C?模43 校验位
计算确定模43 校验位如下
Code 39 码中每个字符有一特写值。它们如下。
0 = 0 B = 11 M = 22 X = 33
A = 10 L = 21 W = 32 % = 42
数据串例子: 12345 ABCDE/
1) 数据串所有有字符值之和。用以上表得到字符值之和如下:
1+2+3+4+5+10+11+12+13+14+40 = 115
2) 除以43 ,3) 剩下余数
115/43 = 2 余数29
C──2
3) 撔Q槲粩就是余数值
余数= 29
29 的值是字母T
T 就是校验位
以下是说明以上例子的条码,右边数字(揟敚┦切Q槲?/P>
D──1
附录D?返回主机状态
当打印机状态命令~ HS 被送到斑马打印机后,三个数据串被送回主机。每串以 控制
码开头以 控制码结束。这样避免混乱,每串将在主机上分行显示/打印。
串1
aaa, b, c, dddd, eee, f, g, h, iii, j, k, l
aaa = 通讯(接口)设置( *)
b = 撝酵陻樗( 1= 纸完)
c = 撛萃标志( 1=暂停状态)
dddd = 标签长度(点数值)
eee = 接收缓冲格式数
f = 摶撼迓鷶标志( 1= 接收缓冲满)
g = 撏ㄑ墩锒夏J綌标志( 1=诊断模式状态)
h = 摬煌暾袷綌标志( 1=不完整格式)
iii = 不用(始终000 )
j = 摶礡AM 敱曛荆?=配置数据丢失)
k = 温度范围( 1= 过冷)
l = 温度范围( 1=过热)
(*)这参数打印机波持率,#停止位,校验位设置和握手信号类型。三位十进制数表示8
位二进制数。确定这参数,先把十进制数转换到二进制数,然后9 位二进制数如下:
aaa = a8 a7 a6 a5 a4 a3 a2 a1 a0
a8= 高速波持率0=111 到19200
1=28800 更高
a7= 握手信号
0=xon/xoff
1=DTR
下页继续
D──2
a6 = 奇/偶校验
0= 奇
1= 偶
a5 = 禁止/允许
0= 禁止
1= 允许
a4 = 停止
0=2 位
1=1 位
a3 = 数据位
0=7 位
1=8 位
a8 a2 a1 a0 = 波持率
0 000=110
0 001=300
0 010=600
0 011=1200
0 100=2400
0 101=4800
0 110=9600
0 111=19200
1 000=28800
1 001=38400 (不执行)
1 010=57600
D──3
串2
mmm, n, o, p, q, r, s, t, uuuu, v, www
mmm= 功能设置( *)
n=0 (不用)
o= 摯蛴⊥反蚩獢标志( 1=打开位置)
p= 撋陻标志( 1=色带完)
q= 撊茸∧J綌标志( 1=热转印状态)
r=打印模式
0= 回卷器
1= 剥离
2= 撕裂
3= 保留
s= 打印宽度模式
6=4.41 英寸
t=摫昵┑却龜标志( 1= 标签等待剥离)
uuuu= 一批标签剩余数
v=摯蛴≈懈袷綌标志(始终1)
www= 内存中图象贮存数
(*) 参数打印机标签类型,传感器图状态,通讯诊断状态。在串1 中,三位十进制数代表8
位二进制数。首先把十进制数转换到二进制数。然后8 位二进制数表示如下。
mmm=m>m6m5m4m3m2m1m0
m7= 纸类型
0= 不连续
1= 连续
m6= 传感器图
0= 关
1= 开
m5= 通讯诊断
0= 关
1= 开
接下页
D──4
m4 m3 m2 m1= 不用
0= 始终
m0= 打印模式
0= 热敏
1= 热转印
串3
× ×××,y
××××=0000 (保留以后用)
y=0 (保留以后用)
E──1
附录E 椖诖孀刺?/P>
当内存状戊命令~ HM 送到斑马打印机后, 一行数据包括三个数字送回主机。这信息内容描
述如下。
内存状态行
1024 , 0780 ,1025 , 0780
第一个值是RAM (随机存贮器)安装在打印机上总数。这数单位是干字节。在这例子中,
斑马打印机有1024K RAM 安装。
第二个值是RAM (随机存贮器)用户可用最大总数。这数单位是干字节。在这例子中。斑
马打印机有最大可用780K RAM 。
第三个值是RAM (随机存贮器)当前用户可用数。这数单位是干字节。在这例子中。斑马
打印机当前给用户可用780K RAM 。
注1:内存当前可用值是不包括点阵占用内存。(由^MCN )
注2:下载图象或贮存点阵仅影响第个值。第1 和第2 值在打印机开机后将不改变了。
F──1
附录F?50 码表
F──2

转载于:https://www.cnblogs.com/turnip/p/11548514.html

你可能感兴趣的:(条码打印三 - Zebra最全ZPL语言指令解析)