Menu

最常用ZPL命令

40多个Zebra打印机编程命令的完整参考,附实用示例

立即试用我们的免费ZPL工具

免费,无需注册 — 即时结果

ZPL命令参考

ZPL(Zebra编程语言)使用以^(脱字符)或~(波浪号)开头的命令。^命令用于标签格式内,放在^XA和^XZ之间。~命令用于打印机配置,可以在格式外发送。每个命令都有用逗号分隔的可选参数。本指南涵盖物流、库存、零售和快递标签中最常用的命令。

命令类别

标签格式命令

ComandoDescripciónEjemploParámetros
^XA开始标签格式。所有ZPL代码必须以此命令开头。^XA ... ^XZ无参数
^XZ结束标签格式。关闭^XA开始的代码块并将标签发送到打印机。^XA ^FO50,50 ^FD你好^FS ^XZ无参数
^FO字段原点。设置下一个元素(文本、条形码、图形)的X,Y位置。^FO100,200x,y - 以点为单位的坐标。203 dpi = 8 点/毫米
^FT字段排版。类似^FO但从文本基线定位,适合对齐不同大小的文本。^FT100,200x,y - 从文本基线开始的坐标
^FS字段分隔符。标记单个字段的结束。每个字段(文本、条形码、图形)必须以^FS结尾。^FO50,50^FD文本^FS无参数
^CI更改国际编码。启用特殊字符如中文、日文等多字节字符的支持。^CI28编码 - 28 = UTF-8, 13 = Latin-1。使用^CI28支持中文
^CF默认字体。设置整个标签的默认字体、方向和大小。^CF0,30,30字体,高度,宽度 - 字体0是标准内置字体
^FW默认字段方向。设置文本和条形码的默认旋转角度。^FWRN=正常, R=90°, I=180°, B=270°

文本命令

ComandoDescripciónEjemploParámetros
^A字体选择和大小。定义下一个文本字段使用的字体及其大小。^A0N,30,30f,o,h,w - f=字体(0-9,A-Z), o=方向(N,R,I,B), h=高度, w=宽度
^FD字段数据。要打印的文本或数据。始终放在^FO和^A之后、^FS之前。^FO50,50^A0N,30,30^FD我的文本^FS文本 - 要打印的内容(最多3072个字符)
^FB多行字段块。创建固定宽度的文本区域,自动将文本换行到多行。^FB400,3,0,L,0^FD较长的文本会自动换行^FS宽度,最大行数,行距,对齐(L/C/R/J),缩进
^FH十六进制指示符。允许使用以_(下划线)为前缀的十六进制代码插入特殊字符。^FH^FD价格: _c2_a250.00^FS指示符 - 默认使用_作为十六进制前缀
^FN模板字段编号。创建编号字段,可在之后填充数据,适用于可变数据标签。^FO50,50^A0N,30,30^FN1^FS编号 - 字段编号(1-999)用于替换
^SN数字序列化。在每张打印的标签上自动递增数字,适合序列号或批次号。^FO50,50^A0N,30,30^SN001,1,Y^FS起始值,增量,补零(Y/N)

条形码命令

ComandoDescripciónEjemploParámetros
^BY条形码默认设置。设置模块宽度、比率和默认高度。必须放在条形码命令之前。^BY2,3,100模块宽度(1-10),比率(2.0-3.0),高度 - 宽度控制分辨率
^BCCode 128 — 物流和快递中最常用的条形码。可编码数字、字母和特殊字符。行业标准。^FO50,50^BY2^BCN,100,Y,N,N^FD123456789^FSo,高度,解释行(Y/N),上方(Y/N),校验(Y/N)
^BQQR码。可编码URL、长文本或二进制数据。广泛用于追踪标签和营销。^FO50,50^BQN,2,5^FDQA,https://example.com^FSo,模型(1/2),放大(1-10)。数据前缀: QA=自动, QM=手动
^BEEAN-13 — 全球零售产品标准。需要正好12位数字(第13位自动校验)。^FO50,50^BY2^BEN,100,Y,N^FD690123456789^FSo,高度,解释行(Y/N),上方(Y/N)
^BUUPC-A — 美国和加拿大零售标准。需要正好11位数字(第12位自动校验)。^FO50,50^BY2^BUN,100,Y,N^FD12345678901^FSo,高度,解释行(Y/N),上方(Y/N)
^B3Code 39 — 广泛用于库存和制造业。仅编码大写字母、数字和部分符号。^FO50,50^BY2^B3N,N,100,Y,N^FDABC123^FSo,校验(Y/N),高度,解释行(Y/N),上方(Y/N)
^BXDataMatrix — 紧凑型二维码,用于制造业、电子和医药行业。在小空间存储大量数据。^FO50,50^BXN,5,200^FDSN:ABC123456^FSo,高度,质量(0-200)。200=最大纠错
^B7PDF417 — 高容量二维码。用于驾照、登机牌和身份证件。^FO50,50^B7N,5,2,3,10,N^FD大量数据^FSo,高度,安全级别(0-8),列数,行数,截断(Y/N)
^BOAztec — 无需静区的紧凑型二维码。用于交通票据和空间受限的场景。^FO50,50^BON,5,N^FDAztec数据^FSo,放大,ECL(Y/N)。不需要周围的空白区域

图形和线条命令

ComandoDescripciónEjemploParámetros
^GB绘制框或矩形。创建边框、分隔线和框架,用于标签的视觉组织。^FO50,50^GB400,200,3^FS宽度,高度,线粗,颜色(B/W),圆角(0-8)
^GC绘制圆形。创建指定直径和线粗的圆形。^FO50,50^GC100,3,B^FS直径,线粗,颜色(B/W)
^GD绘制对角线。从左上角到右下角(或反向)创建一条线。^FO50,50^GD200,100,3,B,L^FS宽度,高度,线粗,颜色(B/W),方向(L/R)
^GE绘制椭圆。创建指定宽度、高度和边框粗细的椭圆。^FO50,50^GE200,100,3,B^FS宽度,高度,线粗,颜色(B/W)
^GF图形字段。插入压缩格式的图像(hex或Z64)。用于Logo、签名和自定义图形。^GFA,压缩数据...格式(A=ASCII hex),数据字节,每行字节,行数,数据

标签设置命令

ComandoDescripciónEjemploParámetros
^LH标签原点。移动整个标签的参考点(0,0)。适用于调整边距。^LH30,20x,y - 新原点(以点为单位)
^LL标签长度。设置标签的总长度(以点为单位)。在打印机无法自动检测时需要设置。^LL800长度 - 以点为单位。203dpi: 800点 ≈ 100毫米
^PW打印宽度。设置最大打印宽度。适用于在窄标签上居中内容。^PW812宽度 - 以点为单位。4英寸在203dpi = 812点
^LT标签顶部调整。上下移动整个图像以校准垂直位置。^LT10偏移量 - 正值=下移, 负值=上移 (-120到120)
^LS标签偏移。左右移动整个图像用于水平校准。^LS-20偏移量 - 正值=右移, 负值=左移
^MN介质跟踪。配置打印机如何检测标签:黑标、间隙或连续模式。^MNYN=连续, Y=间隙, M=黑标, W=Web感应
^MM打印模式。控制打印后打印机是撕纸、剥离还是回卷标签。^MMTT=撕纸, P=剥离, R=回卷, C=切刀, A=贴标机

打印命令

ComandoDescripciónEjemploParámetros
^PQ打印数量。设置当前标签的打印份数。支持分组间暂停。^PQ3,0,1,Y数量,组间暂停,每组份数,覆盖(Y/N)
^PR打印速度。控制打印、回退和进纸速度。速度越低=质量越好。^PR4,4,4打印(1-14),回退,进纸 - 速度单位:英寸/秒
^PM镜像打印。水平翻转整个图像。适用于在透明材料上打印。^PMYY=启用镜像, N=正常
^PO打印方向。将整个标签旋转180°,适用于从下方进纸的打印机。^POIN=正常, I=翻转(180°)

打印机配置命令(~)

ComandoDescripciónEjemploParámetros
~SD设置深度。调整打印浓度。值越高=越深色,碳带消耗越多。~SD15值 (0-30) - 推荐热转印:10-20
~JA取消所有作业。停止当前打印并清空打印机缓冲区。~JA无参数
~HS主机状态。请求打印机状态信息:纸张、碳带、活动错误。~HS无参数 - 返回3行状态信息
~DG下载图形。将图像存储在打印机内存中以便重复使用,无需重新发送数据。~DGR:LOGO.GRF,字节,宽度,数据名称,总字节,每行字节,十六进制数据

ZPL命令常见问题

初学者必须掌握哪些ZPL命令?

6个必备命令:^XA(标签开始)、^XZ(标签结束)、^FO(X,Y位置)、^A(字体和大小)、^FD(要打印的文本)和^FS(字段结束)。用这6个命令就能创建基本文本标签。物流标签再加上^BY(条形码设置)和^BC(Code 128)。

ZPL中^FO和^FT有什么区别?

^FO(字段原点)从元素的左上角定位。^FT(字段排版)从文本基线定位。大多数情况下^FO更直观。当需要在同一基线上对齐不同大小的文本时使用^FT,因为^FT无论字体大小如何都能保持垂直对齐。

如何在ZPL中打印中文字符?

在标签开头使用^CI28命令启用UTF-8编码。示例:^XA ^CI28 ^FO50,50 ^A0N,30,30 ^FD中文测试^FS ^XZ。没有^CI28,中文和其他特殊字符将显示为乱码。注意:打印机需要支持UTF-8或安装了中文字体。

如何打印同一标签的多份副本?

在^XZ之前使用^PQ命令。例如:^PQ5打印5份。对于序列化(递增编号),在字段内使用^SN:^FO50,50 ^A0N,30,30 ^SN001,1,Y^FS 将在每份连续副本上打印001、002、003...

ZPL命令在非Zebra打印机上能用吗?

不能直接使用。ZPL是Zebra打印机的原生语言。TSC和SATO等品牌有部分兼容模式,但不是100%可靠。对于其他品牌的打印机,推荐使用ZPLPDF将ZPL转换为PDF,然后从任何打印机打印PDF。

快递标签应该用哪种条形码?

Code 128(^BC)是全球物流和快递的标准。京东、淘宝、拼多多等平台生成的快递标签已经包含了条形码。如果需要创建自己的快递条形码,使用^BY2 ^BCN,100,Y可以生成带有人工可读文字的标准Code 128。

如何调整ZPL的打印大小和质量?

调整条形码分辨率:修改^BY的第一个参数(模块宽度),^BY2为标准,^BY3为更粗。调整整体深度:使用~SD后跟0-30的值(推荐15)。调整速度(越慢=质量越好):使用^PR后跟英寸/秒的速度,^PR4是质量和速度的良好平衡。

验证您的ZPL代码

使用我们的验证器在发送到打印机之前验证您的ZPL代码是否正确。