ZPL编程是否可根据输入调用指定图片用于Zebra打印机标签打印?
ZPL动态读取字段图片的实现说明
首先明确:ZPL无法直接通过文本字段的^FD命令拉取附件集合字段的图片并自动渲染,需要调整模板逻辑实现动态图片加载,具体方案如下:
- 方案1(推荐,打印速度最快):提前将所有会用到的EHS警示图片转换为ZPL原生支持的GRF格式,存储到Zebra打印机的内置存储中,每张图片分配和ehs_warning字段取值一一对应的唯一文件名,比如
ehs_high_temp.grf、ehs_toxic.grf等。模板中替换原文本字段为图片调用命令,将文件名位置设置为动态字段即可,示例修改后的代码如下:
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR4,4~SD30^JUS^LRN^CI0^XZ ^XA ^MMT ^PW927 ^LL927 ^LS0 ^FO10,50^XGR:${ehs_warning}.GRF,1,1^FS ^PQ1,0,1,Y^XZ
上述代码中的${ehs_warning}就是你原有绑定的动态字段,字段返回值对应预存在打印机里的GRF文件名即可完成图片动态渲染。
- 方案2(无需提前存图到打印机):如果使用打印中间件或者自研打印服务,可在服务层先根据ehs_warning字段的取值拉取对应图片,实时转换为^GFA命令支持的ASCII编码二进制流,直接嵌入到ZPL代码的动态字段位置即可实现打印。
如果ehs_warning字段包含多张图片,你可以将字段按分隔符拆分出多个图片标识,在模板的不同坐标位置依次添加多个图片调用命令即可实现多图打印。
内容的提问来源于stack exchange,提问作者S. Michael
相关产品推荐
相关产品推荐

