ZPL ^FC的时间戳在作业接收时计算,而不是在标签打印时计算(Zebra ZT420剥离模式)

编程语言 2026-07-11

我正在使用ZPL在 Zebra ZT420(203 dpi)上打印标签。
打印机配置在 剥离模式(出纸器),因此它先打印一个标签,等操作员取走后再打印下一个。

我使用打印机时钟来打印时间戳:

^FC
^FDSTAMPATO: %d/%m/%Y %H:%M:%S^FS

如果我发送一个包含两个标签的作业:

^XA
...
^FC
^FDSTAMPATO: %d/%m/%Y %H:%M:%S^FS
^PQ2
^XZ

这两个标签得到的是相同的时间戳,即使在取下第一张和打印第二张之间经过数秒。

示例输出:

PRINTED: 16/03/2026 17:32:10
PRINTED: 16/03/2026 17:32:10

看来打印机在接收到作业时就对 ^FC 进行评估,一次性,而不是在每张标签打印时重新评估。

问题

在ZPL中是否有办法强制打印机对每张标签重新评估时钟,以便每张打印的标签都反映实际打印时间?

或者说只有将每次打印一个标签的作业才是唯一的解决方案?

打印机详情

  • Zebra ZT420
  • 203 dpi
  • 固件:Link-OS V75.20.10Z
  • 已启用剥离模式
  • 已启用实时时钟

解决方案

^SL – 设置模式和语言(用于实时时钟)

取值:

S = 开始时间模式。当标签格式化开始时(收到 ^XA),将从实时时钟读取此时间。第一张标签的时间与最后一张标签相同。

T = 现在时间模式。当将要打印的标签放入打印队列时,从实时时钟读取此时间。现在时间类似于一个序列化的时间或日期字段。

数值:使用增强型实时时钟(V60.13.0.10或更高版本)时,可以指定时间精度容差。范围 = 1到 999秒,0 = 1秒容差。示例:SL30,1 = 容差为30秒并使用英文。

默认值是 ^SLS,尽管这也可能在60秒后更新时间戳。我还没有尝试过这个(从未使用过剥离模式),但它可能对你有用。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章