3. 标签打印之ZPL

By youfang

ZPL指令

^XA
^FO50,50^BY3
^B8N,100,Y,N
^FD1234567^FS
^XZ

^XA^FO50,50^BY3^B8N,100,Y,N^FD1234567^FS^XZ

^XA
^LH0,0
^FO60,20
^ADN,36,20
^FD 123456 ^FS
^FO60,95

^B7N,5,3,,,N
^FD 123456 ^FS
^XZ

PDF417
^XA^LH0,0^FO60,20^ADN,36,20^FD 123456 ^FS^FO60,95^B7N,5,3,,,N^FD 123456 ^FS^XZ

^XA

^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0
^FO0,20
^A0N,50,50
^FD HelloWord!^FS

^XZ

– SUCCESS

^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0

^FO20,100
^AZN,72,72
^FD中123文ABC测试^FS

^PQ1
^XZ

– SUCCESS -> Encoding:936 » Simplified_Chinese_GBK 不过字体不好看

^XA
^SEE:GB18030.DAT^FS
^CWZ,E:Microsoft YaHei.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0

^FO20,100
^AZN,50,50
^FD渔舟唱晚风^FS

^PQ1
^XZ

– FAILD -> 字体好像不成功。。。还要研究

^XA

^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0

^FO0,20
^A0N,50,50
^FD HelloWord!^FS

^FO30,70
^B7N,7,3,,,N
^FD 496676247726178304 ^FS

^FO30,170
^A0N,20,20
^FD 496676247726178304 ^FS

^XZ

排版 - 怎么居中?

script
1
2
3
4
5
^XA
^CF0,30,30^FO25,50
^FB250,4,,C
^FDOK.^FS
^XZ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
^XA
^MUm,200,300
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO0,2
^A0N,5,5
^FD HelloWord!^FS

^FO6,14
^B7N,7,3,,,N
^FD 496676247726178304 ^FS

^CF3,4,4
^FO0,27
^FB320,4,,C
^A0N,2,2
^FD 496676247726178304 ^FS

^XZ

先把东西都加上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
^XA

^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO0,20
^A0N,50,50
^FD HelloWord!^FS

^FO10,60
^A0N,20,20
^FD spec:100/50-35/5^FS

^FO10,80
^A0N,20,20
^FD model:标准型^FS

^FO10,100
^A0N,20,20
^FD expire:20200827^FS

^FO5,140
^B7N,8,4,5,,N
^FD 496676247726178304 ^FS

^FO70,220
^A0N,20,20
^FD 496676247726178304 ^FS

^XZ

中文还不支持

合并上面的中文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO0,20
^AZN,50,50
^FD 切口皮肤组织牵开扩张器^FS

^FO10,60
^AZN,20,20
^FD 规格:100/50-35/5^FS

^FO10,80
^AZN,20,20
^FD 型号:标准型^FS

^FO10,100
^AZN,20,20
^FD 效期:20200827^FS

^FO5,140
^B7N,8,4,5,,N
^FD 496676247726178304 ^FS

^FO70,220
^A0N,20,20
^FD 496676247726178304 ^FS

^XZ

微调:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO0,20
^AZN,50,50
^FD 切口皮肤组织牵开扩张器^FS

^FO10,70
^AZN,20,20
^FD 规格:100/50-35/5^FS

^FO10,95
^AZN,20,20
^FD 型号:标准型^FS

^FO10,120
^AZN,20,20
^FD 效期:20200827^FS

^FO5,140
^B7N,8,4,5,,N
^FD 496676247726178304 ^FS

^FO70,220
^A0N,20,20
^FD 496676247726178304 ^FS

^XZ

–版本: v.1.0.0.RC.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO0,20
^AZN,35,35
^FD 切口皮肤组织牵开扩张器^FS

^FO10,60
^AZN,20,20
^FD 规格:100/50-35/5^FS

^FO10,85
^AZN,20,20
^FD 型号:标准型^FS

^FO10,110
^AZN,20,20
^FD 效期:20200827^FS

^FO5,140
^B7N,8,4,5,,N
^FD 496676247726178304 ^FS

^FO50,220
^A2N,20,10
^FD 496676247726178304 ^FS

^XZ

– 差个偏移,加上偏移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


^FO20,20
^AZN,35,35
^FD 切口皮肤组织牵开扩张器^FS

^FO20,60
^AZN,20,20
^FD 规格:100/50-35/5^FS

^FO20,85
^AZN,20,20
^FD 型号:标准型^FS

^FO20,110
^AZN,20,20
^FD 效期:20200827^FS

^FO30,140
^B7N,8,4,5,,N
^FD 496676247726178304 ^FS

^FO70,220
^A2N,20,10
^FD 496676247726178304 ^FS

^XZ

– 上面是:版本: v.1.0.0.RC.2
– 存在问题:字体不好看

中文字体问题

3、使用打印机指令ZPLII语言打印汉字,需要有条码打印机的汉字硬字库支持,不用硬字库也可以,但方法十分复杂不易操作。ZEBRA打印机本身的内存里带有一些条码字库和英文字库,这些条码和英文可以直接通过ZPLII语言来控制打印,所以在打印条码和文字的时候ZEBRA打印机的传输速度很快。ZEBRA打印机的标准内存不带有汉字字库,不能用ZPLII语言来直接控制打印汉字,所以它在打印汉字的时候计算机需要将汉字转化成图形再传输给打印机,这样传输数据量大的时候,传输的时间也比较长,而且当打印的汉字大很多的时候,非常容易造成打印机的数据溢出,所以要减少传输的数据量,缩短传输时间,需要给斑马Zebra条码打印机加装汉字硬字库。

测试命令:

1
2
3
4
5
6
7
8
9
10
11
12
^XA
^SEE:GB18030.DAT^FS
^CWZ,E:SIMSUN.FNT
^CI26
^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0

^FO20,100
^AZN,50,50
^FD渔舟唱晚风^FS

^PQ1
^XZ

库位码设计:

这个就比较简单了

1
2
3
4
5
^XA
^FO40,25
^BCN,180,Y,N,N
^FDA100-25-45^FS
^XZ

换了单位还不行

^CF:更改字母数字默认字体
说明 ^CF 命令用于设置打印机使用的默认字体。可以使用 ^CF 命令来简化程序。
格式 ^CFf,h,w
f = 指定的默认字体 接受的值:A 至 Z 和 0 至 9开机时的初始值:A
h = 单个字符高度 (以点为单位)接受的值:0 至 32000开机时的初始值:9
w = 单个字符宽度 (以点为单位)接受的值:0 至 32000开机时的初始值:5 或上一次永久保存的值

^FO:字段起始位置
说明 ^FO 命令用于设置字段起始位置,相当于标签起始 (^LH) 位置而言。通过沿 x 轴和 y 轴定义点 (与旋转角度无关), ^FO 可设置字段区的左上角。
格式 ^FOx,y,z
x = x 轴位置 (以点为单位)接受的值:0 至 32000默认值:0
y = y 轴位置 (以点为单位)接受的值:0 至 32000默认值:0 z = 对齐方式
z 参数仅在版本为V60.14.x、 V50.14.x 或更高版本的固件中受支持。接受的值:0 = 左对齐1 = 右对齐2 = 自动对齐 (与脚本有关)默认值:上次接受的 ^FW 值或默认的 ^FW 值

^FB:字段块
说明 使用 ^FB 命令,可以将文本打印为定义的块类型格式。通过使用专用于文本字符串的起始位置、字体以及旋转角度,该命令可将 ^FD 或 ^SN 字符串的格式设置为文本块。 ^FB 命令还包含自动换行功能。
格式 ^FBa,b,c,d,e

a = 文本块行的宽度(以点为单位)接受的值:0 至标签宽度默认值:0如果该值小于字体宽度或未指定,则不会打印文本。
b = 文本块的最大行数 接受的值:1 至 9999默认值:1超过最大行数的文本会覆盖最后一行。更改字体大小会自动增大或减小文本块的大小。
c = 添加或删除行间空格 (以点为单位)接受的值:-9999 至 9999默认值:0除非前面带有减号,否则数字均被视为正值。正值添加空格;负值删除空格。
d = 文本对齐 接受的值:L = 左对齐C = 居中R = 右对齐J = 两端对齐默认值:L如果使用 J,则最后一行为左对齐。
e = 第二行与其余行的悬挂缩进量 (以点为单位)接受的值:0 至 9999默认值:0

示例:

1
2
3
4
5
6
7
8
9
^XA                     //开始指令
^LH0,0 //标签起始坐标
^FO60,20 //设置字体开始位置
^ADN,36,20 //字体大小
^FD 123456 ^FS //打印123456 ^FD(开始)^FS(结束)
^FO60,95 //设置二维码的开始位置
^B7N,5,3,,,N //二维码设置
^FD 123456 ^FS //设置二维码的内容
^XZ //结束指令

最终版

  • 物品码:版本: v.1.0.0.RELEASE

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    ^XA
    ^SEE:GB18030.DAT^FS
    ^CWZ,E:SIMSUN.FNT
    ^CI26
    ^JMA^LL300^PW400^MD10^PR2^PON^LRN^LH0,0


    ^FO20,20
    ^AZN,35,35
    ^FD 切口皮肤组织牵开扩张器^FS

    ^FO20,60
    ^AZN,20,20
    ^FD 规格:100/50-35/5^FS

    ^FO20,85
    ^AZN,20,20
    ^FD 型号:标准型^FS

    ^FO20,110
    ^AZN,20,20
    ^FD 效期:20200827^FS

    ^FO30,140
    ^B7N,8,4,5,,N
    ^FD 496676247726178304 ^FS

    ^FO70,220
    ^A2N,20,10
    ^FD 496676247726178304 ^FS

    ^XZ
  • 库位码:版本: v.1.0.0.RELEASE

    1
    2
    3
    4
    5
    ^XA
    ^FO40,25
    ^BCN,180,Y,N,N
    ^FDA100-25-45^FS
    ^XZ

遇到问题:CODE128随着内容长度的变化而变化

解决办法:无解