如何创建ZPL标签
10个实用步骤分步教程,从零开始创建专业物流标签
ZPL简介
ZPL(Zebra编程语言)是编程Zebra热敏打印机的标准语言,被京东(JD.com)、淘宝、拼多多、顺丰速运等主流电商和物流平台广泛用于生成快递面单。在本教程中,您将通过10个渐进式步骤学习从零创建ZPL标签,从最基础的结构到完整的快递面单。每个步骤均包含可直接在ZPLPDF的ZPL查看器中测试的代码。您不需要拥有Zebra打印机——可以将ZPL代码转换为PDF,再从任意打印机打印。
1步骤1:ZPL标签的基本结构
每个ZPL标签必须以^XA(格式开始)开头,以^XZ(格式结束)结尾。在这两个命令之间定义所有标签元素。每个元素(文字、条形码、图形)都是一个「字段」,由^FO(位置)、内容和^FS(字段结束)定义。这个结构是强制性的——没有^XA/^XZ,打印机将忽略所有代码。
^XA ^FO50,50 ^A0N,30,30 ^FD你好世界^FS ^XZ
2步骤2:配置标签尺寸
使用^LL定义标签长度,^PW定义打印宽度,单位均为点(dots)。在203 DPI下:1英寸=203点,1毫米≈8点。标准4x6英寸快递面单(100x150mm)需要^PW812 ^LL1218。^LH命令用于调整整个标签的原点(边距)。
^XA ^PW812 ^LL1218 ^LH10,10 ^FO50,50^A0N,30,30 ^FD4x6英寸标准快递面单^FS ^XZ
3步骤3:使用^FO定位元素
^FO(字段原点)命令定义下一个元素的X,Y坐标位置,从标签左上角以点为单位计算。X值向右增大,Y值向下增大。在203 DPI下,100点≈12.5毫米。同一标签中可以在不同位置放置多个元素。
^XA ^FO50,30^A0N,25,25^FD左上角^FS ^FO300,30^A0N,25,25^FD右上角^FS ^FO50,200^A0N,25,25^FD左下方^FS ^FO300,200^A0N,25,25^FD右下方^FS ^XZ
4步骤4:设置不同字体和大小的文字
^A命令定义使用的字体。格式:^A(字体)(方向),(高度),(宽度)。字体0是标准字体。方向:N=正常,R=顺时针90°,I=180°,B=逆时针90°(270°)。高度和宽度以点为单位。多行自动换行文本可在^FD之前使用^FB(宽度,行数,行距,对齐方式)。
^XA ^FO50,30^A0N,50,50^FD大标题^FS ^FO50,100^A0N,30,30^FD中号副标题^FS ^FO50,150^A0N,20,20^FD小号正文^FS ^FO50,200^A0R,30,30^FD旋转90度文字^FS ^FO50,300^FB400,3,0,C,0 ^A0N,25,25^FD此文本将在400点宽度范围内自动换行显示^FS ^XZ
5步骤5:用^BY和^BC创建条形码
创建条形码时,先用^BY(模块宽度,比率,高度)配置尺寸,再使用对应类型的命令。^BC生成Code 128(物流行业标准条形码)。^BC的参数:方向、高度、人工识读(Y/N)、顶部显示(Y/N)、校验位(Y/N)。务必将识读参数设为Y,以便条形码数字在条纹下方可见。
^XA ^FO50,50^BY2,3,100 ^BCN,100,Y,N,N ^FD123456789^FS ^FO50,200^BY3 ^BCN,80,Y,N,N ^FDJD-001-XYZ^FS ^XZ
6步骤6:创建二维码
^BQ命令创建二维码。格式:^BQ(方向),(模型),(放大倍数)。始终使用模型2,根据所需尺寸调整放大倍数(1-10)。数据前需加前缀:QA表示自动检测,MM,A表示含特殊字符的数据。放大倍数5适合标准快递标签,可根据实际尺寸调整。
^XA ^FO50,50 ^BQN,2,5 ^FDQA,https://zplpdf.com^FS ^FO350,50 ^BQN,2,3 ^FDQA,商品编号:SKU-001^FS ^XZ
7步骤7:绘制边框、线条和分隔符
^GB命令绘制矩形和边框:^GB(宽度,高度,线条粗细)。当宽度和高度等于线条粗细时,则绘制一条线。使用边框可以创建框架、分隔线,使标签内容在视觉上更有层次感。也可以用^GC(直径,线粗)绘制圆形,^GD绘制对角线。
^XA ^FO30,30^GB500,300,2^FS ^FO30,120^GB500,1,1^FS ^FO50,50^A0N,30,30^FD标题栏^FS ^FO50,140^A0N,25,25^FD标签主要内容区域^FS ^FO50,200^A0N,25,25^FD更多信息显示在此^FS ^FO400,250^GC50,2,B^FS ^XZ
8步骤8:用^CI28支持中文字符
默认情况下,ZPL不支持中文及其他多字节字符。要启用中文支持,需在标签开头添加^CI28以激活UTF-8编码。这对于京东、淘宝、拼多多等电商平台生成的中文快递面单至关重要——收件人姓名、地址、省市信息均需正确显示汉字。不加^CI28,中文将显示为乱码。
^XA ^CI28 ^FO50,50^A0N,30,30 ^FD收件人:王小明^FS ^FO50,100^A0N,30,30 ^FD地址:北京市朝阳区建国路88号^FS ^FO50,150^A0N,30,30 ^FD订单号:JD-2024-001234^FS ^XZ
9步骤9:用^PQ打印多份
^PQ(数量)命令放在^XZ之前,定义打印份数。如需自动序列化(每份标签自动递增编号),可在字段内使用^SN(起始值,增量,补零)。这非常适合批量生成连续序列号标签,无需逐张发送。顺丰、圆通等快递公司在批量出单时广泛使用此功能。
^XA ^FO50,50^A0N,30,30 ^FD商品:旗舰款产品^FS ^FO50,100^A0N,25,25 ^FD序列号:^FS ^FO150,100^A0N,25,25 ^SN0001,1,Y^FS ^FO50,150^BY2^BCN,80,Y ^FDSKU-FLAGSHIP-001^FS ^PQ5 ^XZ
10步骤10:完整快递面单
本示例将教程中的所有概念整合为一张完整的快递面单:尺寸配置、边框、不同大小的文字、顺丰运单号的Code 128条形码、带物流追踪链接的二维码,以及中文字符支持。您可以将此模板用于京东、淘宝、拼多多等平台的自定义面单,替换寄件人、收件人和运单号信息即可。
^XA ^CI28 ^PW812^LL609 ^FO20,20^GB772,569,2^FS ^FO20,100^GB772,1,1^FS ^FO20,300^GB772,1,1^FS ^FO40,35^A0N,40,40^FD顺丰速运^FS ^FO40,120^A0N,25,25^FD寄件人:李大明^FS ^FO40,155^A0N,25,25^FD地址:上海市浦东新区陆家嘴路88号^FS ^FO40,190^A0N,25,25^FD邮编:200120^FS ^FO40,240^A0N,30,30^FD收件人:张小红^FS ^FO40,275^A0N,25,25^FD北京市海淀区中关村大街1号,邮编:100080^FS ^FO40,320^BY2^BCN,120,Y ^FDGUIA-2024-001234^FS ^FO600,320^BQN,2,4 ^FDQA,https://track.sf-express.com/001234^FS ^FO40,470^A0N,20,20^FD重量:2.5千克 | 第1件/共1件^FS ^XZ
创建ZPL标签的实用技巧
- 打印前务必在ZPLPDF的ZPL查看器中测试标签效果
- 标签开头添加^CI28以正确显示中文、汉字及多字节字符
- 每个条形码命令前使用^BY控制条纹粗细和高度
- 标准快递面单4x6英寸(100x150mm):在203 DPI下使用^PW812 ^LL1218
- ^FO坐标以点为单位:203 DPI下,1英寸=203点,1毫米≈8点
- 使用^FB创建多行文本块,实现文字自动换行
- 用^GB创建边框和分隔线,使标签版式更清晰美观
- 保存可复用模板,用^FN定义变量字段,实现批量面单快速生成
- 使用ZPL验证器检查代码语法,在打印前发现并修复错误
- 没有Zebra打印机?用ZPLPDF将ZPL转换为PDF,再从任意打印机打印