Menu

如何创建ZPL标签

10个实用步骤分步教程,从零开始创建专业物流标签

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

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

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,再从任意打印机打印

关于创建ZPL标签的常见问题

我需要Zebra打印机才能使用ZPL代码吗?

不需要。您可以在ZPLPDF的ZPL查看器中编写和测试ZPL代码,完全不需要打印机。需要打印时,可以将ZPL转换为PDF,再使用任何热敏打印机(Xprinter、汉印、佳博等)或普通激光打印机打印。

标准快递面单的尺寸是多少?

标准快递面单尺寸为4x6英寸(100x150毫米)。在ZPL 203 DPI下,使用^PW812(宽度)和^LL1218(长度)配置。京东、淘宝、拼多多等平台的电子面单均采用此标准尺寸。对于4x4英寸的小标签,使用^PW812 ^LL812。

如何计算元素定位的坐标?

^FO坐标以点(dots)为单位,从标签左上角计算。在203 DPI下:1英寸=203点,1毫米≈8点。对于4英寸宽的标签,X坐标范围为0-812。建议使用ZPLPDF的ZPL查看器直观调整各元素位置,实时查看效果。

为什么我的中文字符显示为乱码或方框?

原因是标签中缺少^CI28命令。该命令激活UTF-8编码,是正确显示中文汉字的必要条件。请在标签开头^XA之后立即添加:^XA ^CI28 ...。对于淘宝、京东、拼多多等平台的中文地址和姓名,此命令不可缺少。

如何创建包含变化数据(姓名、地址)的标签?

有两种方案:1)在应用程序中动态生成完整ZPL代码,将每张标签的变量数据(收件人、地址、运单号)替换进模板。2)使用^FN字段在ZPL中创建模板,然后只发送数据填充字段。方案1对大多数电商场景更简单直接,适合对接京东开放平台、淘宝API等。

可以从Excel或数据库批量创建ZPL标签吗?

可以。最常见的方式是在您的应用程序中(Python、JavaScript、Java、C#均可)用数据库或Excel中的数据填充变量字段来生成ZPL代码。每张标签是一个^XA...^XZ代码块,内含动态插入的收件人、地址、条形码等数据,非常适合拼多多、淘宝等平台的批量发货场景。

如何在一次打印任务中打印多张不同的标签?

将多个^XA...^XZ代码块连续拼接后一次性发送。每个代码块生成一张独立标签。示例:^XA...^XZ ^XA...^XZ ^XA...^XZ 可打印3张不同标签。若要打印多份相同标签,请在单个代码块内使用^PQ(数量)。顺丰、圆通等快递公司批量出单时均采用此方式。

立即测试您的ZPL代码

使用我们的ZPL查看器查看标签打印前的实际效果,无需打印机。