什么是 ZPL?Zebra 编程语言详解
ZPLCraft更新于 2026年8月17日

ZPL(Zebra 编程语言)是一种由兼容热敏打印机用来描述标签的命令语言。ZPL 打印机不会接收完成的页面图像,而是接收“在这里放这段文字、在那里画这个条码、打印一份”之类的纯文本命令;打印机会解释这些命令,并使用其已配置的打印头分辨率渲染标签。
ZPL 使用紧凑的文本命令,ERP 系统、脚本和浏览器工具等应用均可生成这些命令。打印机支持情况取决于具体型号和配置:Zebra 会在各型号规格中说明 ZPL II 支持情况;其他制造商的部分打印机也提供有文档说明的 ZPL 兼容仿真模式。
ZPL 标签的样子
ZPL 文档是一系列命令的序列,每条命令均以脱字符(^)开头。每个标签都包裹在 ^XA(格式开始)和 ^XZ(格式结束)之间。以下是一个完整可用的标签示例:
^XA
^CF0,40
^FO50,50^FDHELLO WORLD^FS
^FO50,110^GB700,4,4^FS
^BY3,2,100
^FO150,150^BCN,100,Y,N,N^FD12345678^FS
^XZ逐行解读:
^XA…^XZ——打开和关闭标签格式。两者之间的所有内容描述一张标签。^CF0,40——将默认字体设置为可缩放字体 0,高度为 40 点。^FO50,50——字段原点:将下一个字段定位在距左侧 50 点、距顶部 50 点处。^FDHELLO WORLD^FS——字段数据后跟 字段分隔符:字段的实际内容。^GB700,4,4——绘制一个宽 700 点、高 4 点的图形方框——此处用作水平分隔线。^BY3,2,100然后^BCN,100,Y,N,N——设置条码默认值(模块宽度、宽窄比、高度),然后渲染一个Code 128条码,数据为12345678,并在下方显示人类可读文字。
点而非像素:理解 DPI
ZPL 中的所有坐标和尺寸均以打印机点为单位,一个点的物理尺寸取决于打印头分辨率。常见分辨率为 203 dpi(8 点/毫米)、300 dpi(12 点/毫米)和 600 dpi(24 点/毫米)。在 203 dpi 打印机上,一张 4×6 英寸的物流面单为 812×1218 点;在 300 dpi 打印机上,同样的标签为 1200×1800 点。针对某一分辨率编写的 ZPL 在另一分辨率下会偏大或偏小,因此 DPI 不匹配是“新打印机上标签显示异常”的常见原因;尺寸必须按目标 DPI 缩放。
ZPL vs. EPL vs. 驱动打印
您可能还会接触到EPL(Eltron 编程语言),部分较旧或明确标明兼容的打印机会使用这种语言。ZPL 和 EPL 支持情况因型号和固件而异,因此选择语言前请查阅打印机制造商的文档。原始打印机语言输出的另一种选择是驱动打印:Windows 或 CUPS 驱动会为已配置的打印机准备渲染页面。原始 ZPL 可提供直接坐标控制和紧凑的文本载荷;当设备或操作系统未提供兼容的原始 ZPL 路径时,基于驱动的打印可能更合适。
如何编写或生成 ZPL
对于一次性标签,对照 命令参考手动编写 ZPL 完全可行:这门语言体量不大,少数几条命令(^FO, ^FD, ^A, ^BC, ^GB)即可覆盖大多数实际标签。当您需要反复调整布局时,麻烦就来了——每次微调都意味着修改点坐标、重新发送文件并消耗标签纸。
这正是可视化设计器要解决的问题。ZPLCraft 提供真实尺寸的画布,您可以在其中放置文字、条码、线条和方框,并生成按所选打印机 DPI 缩放的 ZPL。条码数据、尺寸和静区仍须符合所选码制的要求,且应使用目标打印机和扫描器验证实物打印结果。您可以将代码导出到已发送 ZPL 的系统,或者 使用浏览器中的 WebUSB 打印 ,前提是浏览器、操作系统和打印机提供兼容且可占用的接口。
基础常见问题
ZPL 是免费使用的吗?
Zebra 公开发布 ZPL II Programming Guide 供查阅,您也可以使用文本编辑器编写 ZPL 命令。打印机软件、字体、固件和商标可能各有其许可条款。
ZPL 使用什么文件扩展名?
没有强制要求的扩展名——ZPL 就是纯文本。实际中您会看到 .zpl, .txt 和 .prn;打印机并不在意扩展名,它只处理字节流。
没有打印机也能预览 ZPL 吗?
可以——Labelary 等渲染服务可将 ZPL 转换为图像,ZPLCraft 的编辑器在您设计时也会实时显示标签预览,让您只在布局定稿后才消耗标签纸。
哪些打印机与 ZPL 兼容?
兼容性取决于具体型号和配置。请查阅制造商规格,确认是否支持 ZPL 或 ZPL II,或是否提供有文档说明的仿真模式;同时确认目标 DPI 和所需功能,并测试实际输出路径。仅具备 USB 或 TCP 9100 端口连接,并不能证明打印机接受 ZPL。 兼容性与推荐