如何在不指定文本每个部分位置的情况下打印价格? (ZPL)

How to print price without specyfing location of every part of the text? (ZPL)

他想要得到的效果是:

问题是我不想指定文本每一部分的位置。

^XA
^PW480
^FS
^JMA
^MMT
^LS0
^MTD
^CI28
^FO40,11
^FWN
^CF0,16.2,20.7
^FD2144
^FS
^CI28
^FO80,10
^FWN
^CF0,8,8
^FD00
^FS
^CI28
^FO100,10
^FWN^CF0,16.2,17.25
^FDEUR
^FS
^XZ

所以问题是在指定位置的文本之后只打印一次文本吗?没有为文本的每个部分指定位置?

使用^FT代替^FO,并且只指定第一个^FT的X坐标。

默认情况下,^FT从上一个格式化操作完成的点恢复,您可以分别为 X 和 Y 组件提供手动覆盖,因此您只需为后续的 Y 组件提供覆盖^FTs 并让它自动计算 X:

^FT40,11^A0,16.2,20.7^FD2144^FS
^FT,6^A0,8,8^FD00^FS
^FT,11^A0,16.2,17.25^FDEUR^FS

请注意,您需要向下调整 Y 坐标,因为 ^FO 与文本行的顶部对齐(悬挂在其上的字母),而 ^FT 与底部对齐(字母站在上面)。

另请注意,^CF 更改打印机范围的默认字体,在每个命令之前使用它没有意义。如图所示,使用 ^A 代替。您也不需要在每个命令之前设置 ^CI,它又是对整个标签文本进行编码的全局设置。