ZPL与EPL:差异
Zebra两种编程语言的完整比较,包含代码示例和迁移指南
ZPL还是EPL?
Zebra Technologies为其热敏打印机开发了两种编程语言:ZPL(Zebra编程语言)和EPL(Eltron编程语言)。ZPL在20世纪90年代创建,作为EPL的继任者,后者自80年代Zebra收购Eltron Technologies以来一直存在。虽然两者都用于创建标签,但在语法、图形功能、条形码支持和性能方面有根本性差异。EPL于2010年正式停止更新,但在旧系统中仍然使用。本指南帮助您了解差异并决定何时迁移。
比较表
| Característica | ZPL | EPL |
|---|---|---|
| 推出年份 | 1990年代 — 现代语言,持续开发中 | 1980年代 — 旧语言,2010年停止更新 |
| 基本语法 | 使用^(格式)和~(配置)的命令。示例:^XA...^XZ | 使用简单字母的命令。示例:N...P |
| 标签结构 | ^XA开始,^XZ结束。字段用^FO+^FD+^FS | N清除缓冲区,P打印。字段直接定位 |
| 一维条形码 | Code 128、Code 39、EAN-13、UPC-A、Code 93、Interleaved 2 of 5等 | Code 128、Code 39、EAN-13、UPC-A — 种类较少 |
| 二维条形码 | QR(^BQ)、DataMatrix(^BX)、PDF417(^B7)、Aztec(^BO) | 仅新型号支持PDF417和DataMatrix,无原生QR |
| 图形和图像 | ^GF用于图像,^GB用于方框,^GC用于圆形,^GD用于对角线 | 仅GW(图形写入)用于简单位图图像 |
| 字体 | 可缩放内置字体(0-9、A-Z),可下载TrueType,通过^CI28支持Unicode | 5种固定位图字体,不可缩放,不支持Unicode |
| 文本旋转 | 每个字段4种方向(N=0°、R=90°、I=180°、B=270°) | 4种旋转但仅适用于整个标签 |
| 序列化 | ^SN可配置增量、补零、多字段 | 使用C命令的基本序列化,灵活性较低 |
| 打印速度 | ^PR按标签控制速度(1-14英寸/秒) | S控制速度但粒度较低 |
| 打印模式 | ^MM支持撕纸、剥离、回卷、切刀和贴标机 | 模式较少,配置更有限 |
| 兼容打印机 | 所有现代Zebra(ZD、ZT、ZQ、ZE)。部分兼容TSC和SATO | 原始Eltron和旧Zebra(LP、TLP)。当前打印机不支持 |
| 支持和文档 | 更新的ZPL II手册,活跃社区,丰富示例 | 归档文档,2010年以来无更新 |
| 电商平台使用 | 京东、淘宝、拼多多和顺丰生成ZPL格式快递标签 | 没有现代平台生成EPL格式标签 |
何时使用每种语言?
ZPLUsar cuando...
- 任何系列的现代Zebra打印机(ZD、ZT、ZQ、ZE)
- 需要QR码、DataMatrix或任何二维码
- 需要在标签上添加图形、Logo或图像
- 电商平台的快递标签(京东、淘宝、拼多多)
- 与ERP、WMS或电商平台集成
- 需要高级序列化或可变数据字段
- 使用UTF-8的中文字符标签
- 任何新项目,无论复杂程度
EPLUsar cuando...
- 不支持ZPL的旧Eltron打印机
- 运行稳定且不需要更改的旧系统
- 没有图形的极其简单的纯文本标签
- 立即重写成本过高的现有EPL代码
- 只接受EPL的特定固件硬件
代码比较:ZPL vs EPL
简单文本标签
ZPL
^XA ^FO50,50 ^A0N,30,30 ^FD你好世界^FS ^XZ
EPL
N A50,50,0,3,1,1,N,"Hello World" P1
带Code 128条形码的标签
ZPL
^XA ^FO50,50 ^BY2 ^BCN,100,Y,N,N ^FD123456789^FS ^XZ
EPL
N B50,50,0,1,2,3,100,B,"123456789" P1
文本+条形码+方框标签
ZPL
^XA ^FO50,30^A0N,25,25 ^FD产品: Widget^FS ^FO50,70^BY2 ^BCN,80,Y^FDSKU001^FS ^FO40,20^GB350,150,2^FS ^XZ
EPL
N A50,30,0,2,1,1,N,"Product: Widget" B50,70,0,1,2,2,80,B,"SKU001" X40,20,2,390,170 P1
EPL到ZPL快速迁移指南
- 1将N(EPL清除缓冲区)替换为^XA(ZPL开始格式)
- 2将P或P1(EPL打印)替换为^XZ(ZPL结束格式)
- 3将A(EPL文本)转换为^FO + ^A + ^FD + ^FS。示例:A50,50,0,3,1,1,N,"文本" → ^FO50,50 ^A0N,30,30 ^FD文本^FS
- 4将B(EPL条形码)转换为^BY + ^BC。示例:B50,100,0,1,2,3,80,B,"123" → ^FO50,100 ^BY2 ^BCN,80,Y ^FD123^FS
- 5将X(EPL线条)转换为^GB(ZPL图形框)。参数格式会改变
- 6如需中文或特殊字符,在开头添加^CI28
- 7使用ZPLPDF的ZPL查看器在打印前验证每个转换的标签
- 8逐步迁移:一次转换一个标签,在实际打印机上验证
建议
对于任何新项目,ZPL毫无疑问是正确的选择。它提供更多功能、更好的支持、最新的文档,是全球物流行业标准。如果您有现有的EPL代码,请按照本指南的步骤规划逐步迁移。如果使用非Zebra打印机,请使用ZPLPDF将ZPL代码转换为PDF,从任何品牌的打印机打印。
ZPL与EPL常见问题
ZPL还是EPL:哪个更适合当前打印机?
ZPL是当前打印机的最佳选择。支持QR码、高级图形、可缩放字体,兼容所有现代Zebra打印机。EPL已于2010年停止更新。京东、淘宝、拼多多等平台的快递标签均使用ZPL格式。
如何将EPL代码转换为ZPL?
没有直接的自动转换工具。需要手动重写命令:将N替换为^XA,P替换为^XZ,A(文本)替换为^FO+^A+^FD+^FS,B(条形码)替换为^BY+^BC+^FD+^FS。请参阅本页的迁移部分了解每种转换的详细示例。
我的打印机同时支持ZPL和EPL吗?
许多现代Zebra打印机(ZD、ZT、ZQ系列)支持两种语言并自动检测。但其他品牌的打印机通常不原生支持任何一种。对于这些品牌,使用ZPLPDF将ZPL转换为PDF,从任何打印机打印。
为什么京东和顺丰使用ZPL格式?
ZPL是全球物流行业热敏标签的标准。产生工业扫描器可靠读取的高质量条形码,支持多种条形码类型,兼容全球最大物流运营商的操作流程。
EPL比ZPL更快吗?
对于非常简单的纯文本标签,EPL可能略快,因为其语法更紧凑。但对于任何包含条形码、图形或复杂格式的标签,ZPL同样或更高效。在现代打印机上速度差异可以忽略不计。
ZPLPDF支持EPL文件吗?
目前ZPLPDF专注于ZPL。对于EPL文件,建议按照本页的迁移指南手动转换为ZPL,然后使用ZPLPDF查看、验证和转换为PDF。
非Zebra打印机能用ZPL吗?
ZPL是Zebra的原生语言。TSC和SATO等品牌有部分兼容性。对于其他品牌的打印机,解决方案是使用ZPLPDF将ZPL转换为PDF,然后从任何打印机打印PDF,不限品牌。