什么是 ZPL?Zebra 编程语言详解
更新于 2026年6月23日
ZPL(Zebra 编程语言)是 Zebra 及 Zebra 兼容热敏打印机用于描述标签的命令语言。与普通办公打印机接收完整图像不同,ZPL 打印机接收的是一小段纯文本指令——这些指令告诉打印机"在这里放这段文字、在那里画这个条码、打印一份"——然后打印机自行在毫秒内以全分辨率渲染标签。
这种设计正是 ZPL 自 1980 年代以来主导物流、仓储、零售和医疗标签领域的原因:发送到打印机的数据量极小,任何能够输出文本的系统(ERP、脚本、浏览器)都可以生成它,而繁重的渲染工作由打印机硬件完成。自 1990 年代初以来几乎所有 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 进行缩放。
ZPL vs. EPL vs. 驱动打印
您可能还会接触到EPL(Eltron 编程语言),这是一种较旧、较简单的语言,部分传统桌面打印机使用;现代 Zebra 打印机两者均支持,但新项目应优先选用 ZPL。另一种方式是驱动打印——通过 Windows 或 CUPS 驱动将渲染后的页面转换为打印机命令。驱动打印从 Word 或 PDF 查看器打印时很方便,但原始 ZPL 能提供精确的位置控制、更清晰的条码、更小的数据量,以及在无法安装驱动的系统中打印的能力——这正是标签软件最终选择使用 ZPL 的原因。
如何编写或生成 ZPL
对于一次性标签,对照 命令参考手动编写 ZPL 完全可行:这门语言体量不大,少数几条命令(^FO, ^FD, ^A, ^BC, ^GB)即可覆盖大多数实际标签。当您需要反复调整布局时,麻烦就来了——每次微调都意味着修改点坐标、重新发送文件并消耗标签纸。
这正是可视化设计器要解决的问题。ZPLCraft 提供真实尺寸的画布,让您将文字、条码、线条和方框拖放到位,自动为您生成匹配的 ZPL——按照您打印机的 DPI 正确缩放,且条码可扫描。您可以将代码导出到任何已使用 ZPL 的系统,或者 通过 USB 直接从浏览器打印 ,无需安装任何内容。
基础常见问题
ZPL 是免费使用的吗?
是的。ZPL 是一个事实上的开放标准:Zebra 公开发布完整的 ZPL II 编程指南,无需任何授权费用,任何文本编辑器都可以编写它。
ZPL 使用什么文件扩展名?
没有强制要求的扩展名——ZPL 就是纯文本。实际中您会看到 .zpl, .txt 和 .prn;打印机并不在意扩展名,它只处理字节流。
没有打印机也能预览 ZPL 吗?
可以——Labelary 等渲染服务可将 ZPL 转换为图像,ZPLCraft 的编辑器在您设计时也会实时显示标签预览,让您只在布局定稿后才消耗标签纸。