ZPL 字体:^A 命令、内置字体与示例
ZPLCraft更新于 2026年9月30日

Zebra 标签上的每一处文字,都是用 ^A 命令(或 ^CF 设置的默认值)所选的打印机字体绘制的。用好字体主要涉及三点:选对内置字体,按打印机点数而不是磅值来设置大小,并确保打印机能够绘制您发送的字符。
本指南介绍 ^A 语法、每种内置字体及其原始尺寸、203 dpi 与 300 dpi 下字号的变化、用 ^CI28 处理国际字符,以及存放在打印机中的自定义 TrueType 字体。您可以在免费的 ZPL 查看器中打开下方的字体示例并实时修改。
^A 字体命令
字段会使用紧挨在其字段数据之前设置的字体。该命令包含字体名称、方向,以及以点为单位的高度和宽度:
^Afo,h,w- f — 字体名称:0 为可缩放字体,A–H 和 P–V 为位图字体,也可以是用 ^CW 分配的单字符别名。
- o — 方向:N 为正常,R 为顺时针旋转 90°,I 为倒置 180°,B 为自下而上阅读(270°)。
- h — 字符高度,单位为点。
- w — 字符宽度,单位为点。省略时,打印机会根据高度自动推算。
生产环境中常见的做法是先用 ^CF 设置一次默认字体,仅在某个字段需要不同大小时再用 ^A 覆盖:
^XA
^CF0,30
^FO40,40^FDDefault font 0 at 30 dots^FS
^FO40,90^A0N,60,60^FDLarger heading^FS
^FO40,170^A0B,40,40^FDRotated 270^FS
^XZZPL 内置字体及其尺寸
Zebra 打印机内置一种可缩放的轮廓字体和一组固定的位图字体。位图字体有固定的原始字符单元,以 203 dpi(8 点/mm)下的点数来衡量。它们只能按该单元的整数倍放大,因此指定的高度会被对齐到最接近的倍数。
| 字体 | 类型 | 原始单元(高 × 宽,点) | 说明 |
|---|---|---|---|
0 | 可缩放 | 15 × 12 | CG Triumvirate Bold Condensed。可任意设置大小,是标签最常用的选择。 |
A | 位图 | 9 × 5 | 适合注释类小字。大小写字母均可。 |
B | 位图 | 11 × 7 | 仅限大写字母。 |
C, D | 位图 | 18 × 10 | C 和 D 尺寸相同。大小写字母均可。 |
E | 位图 | 28 × 15 | OCR-B。在 300 dpi 打印机上为 42 × 20 点。 |
F | 位图 | 26 × 13 | 大小写字母均可。 |
G | 位图 | 60 × 40 | 大号标题文字。 |
H | 位图 | 21 × 13 | OCR-A,仅限大写字母。在 300 dpi 打印机上为 34 × 22 点。 |
P–V | 位图 | 20 × 18 … 80 × 71 | 固定尺寸,从 20 × 18 到 80 × 71 点,部分打印机型号可用。 |
字体 0 本身就是粗体窄体字,因此大多数快递面单和仓库标签从地址到大号分拣码都使用它。
ZPL 字体示例
这张标签用每种常见的内置字体各打印一行,另外还有一个旋转的字段。它是为 203 dpi、4 英寸宽的标签编写的。
^XA
^PW812
^LL620
^CI28
^FO40,30^A0N,50,50^FDFont 0 (scalable) at 50 dots^FS
^FO40,100^A0N,30,30^FDFont 0 at 30 dots^FS
^FO40,150^AAN,18,10^FDFont A 9x5, magnified x2^FS
^FO40,190^ABN,22,14^FDFONT B 11X7 X2^FS
^FO40,230^ADN,36,20^FDFont D 18x10 x2^FS
^FO40,290^AEN,28,15^FDFont E OCR-B^FS
^FO40,340^AFN,26,13^FDFont F 26x13^FS
^FO40,390^AGN,60,40^FDG 60x40^FS
^FO40,470^AHN,21,13^FDFONT H OCR-A^FS
^FO740,30^A0R,30,30^FDRotated with R^FS
^XZ在查看器中,您可以修改高度和宽度,观察位图字体按整数倍跳变放大,而字体 0 则平滑缩放。
以点为单位的字号:203 dpi 与 300 dpi
ZPL 中的一切都以打印机点数为单位,而不是磅或毫米。203 dpi 的打印机每毫米 8 点,300 dpi 的打印机每毫米 12 点。因此,同样的 ^A0N,40,40 命令在 203 dpi 打印机上打印出的文字高约 5 mm,而在 300 dpi 打印机上只有约 3.4 mm。
要把磅值换算成点数,请乘以打印机分辨率再除以 72。12 磅的文字在 203 dpi 下约为 34 点,在 300 dpi 下约为 50 点。在不同分辨率的打印机之间迁移标签时,请按同一比例(300 ÷ 203 ≈ 1.48)缩放所有字体的高度、宽度和位置。
用 ^CF 设置默认字体
^CF 命令会更改此后所有未自行设置 ^A 的字段所使用的默认字体。^CF0,30 将 30 点的字体 0 设为默认;^CFA,18 则切换为双倍大小的位图字体 A。在格式开头设置默认字体,可以让每个字段的代码更短,也让标签更易于维护。
重音符号、Unicode 与国际字符
默认情况下,许多打印机使用旧式单字节代码页来解释字段数据,因此带重音的字母、货币符号或非拉丁文字可能会打印成错误的字符。在格式开头附近添加 ^CI28,即可告知打印机字段数据为 UTF-8。
^XA
^CI28
^FO40,40^A0N,40,40^FDMüller GmbH — 25 €^FS
^XZ编码只解决了一半的问题:所选字体还必须包含相应的字形。内置字体 0 涵盖西欧字母,但中文、日文、韩文、阿拉伯文或西里尔文通常需要在打印机上安装支持 Unicode 的 TrueType 字体。对于无法安全输入的字符,可以用 ^FH 在 ^FD 中以十六进制转义的形式写出。
自定义 TrueType 字体:^A@ 和 ^CW
大多数新款 Zebra 打印机可以在闪存(通常是 E: 盘)中存放 TrueType 或 OpenType 字体。使用 Zebra Setup Utilities 或 ~DY 下载命令上传字体,然后通过 ^A@ 按文件名调用,例如 ^A@N,40,40,E:ARIAL.TTF。
如果标签多次使用同一种字体,可以用 ^CW 为它分配一个单字母别名,这样就能写 ^AZ,而不必写完整路径。下载的字体只存在于接收它的那台打印机上,因此机群中的每台打印机都必须有相同的字体文件,标签才能打印出一致的效果。
^XA
^CWZ,E:ARIAL.TTF
^FO40,40^AZN,40,40^FDArial via alias Z^FS
^FO40,100^A@N,40,40,E:ARIAL.TTF^FDArial by file name^FS
^XZ字体在 ZPL 预览中的呈现
Zebra 的打印机字体是专有的,因此任何在线查看器都无法逐像素地完全还原。ZPLCraft 查看器为内置字体使用具有相同单元尺寸和度量的授权替代字体,并会标出无法绘制的内容。请用预览来检查版式和排版是否合适,再用一次测试打印确认间距和换行。
ZPL 字体常见问题
ZPL 的默认字体是什么?
如果格式中没有用 ^CF 或 ^A 设置字体,打印机默认使用位图字体 A。实际上,几乎所有标签都会明确指定字体 0,即可缩放的 CG Triumvirate Bold Condensed 字体。
如何在 ZPL 中把文字加粗?
ZPL 没有粗体属性。字体 0 本身已是粗体窄体字;若想让文字更粗,可以相对于高度加大宽度,或在打印机上安装粗体 TrueType 字体,并用 ^A@ 选用。
为什么文字打印出来的大小与预期不同?
可能是标签是为另一种打印机分辨率编写的,也可能是位图字体被对齐到了最接近的整数倍。需要精确尺寸时请使用字体 0,并在 203 dpi 与 300 dpi 之间切换时缩放点数值。
为什么带重音的字符或非拉丁字符打印不正确?
请添加 ^CI28,让打印机把字段数据按 UTF-8 读取,并确保所选字体包含这些字符。中文或阿拉伯文等文字通常需要在打印机上存放支持 Unicode 的 TrueType 字体。