如何在ZPL中截断^FD文本 解决列内容重叠问题
你可以用ZPL原生的^FB(字段块)指令实现文本超出指定宽度自动截断的效果,不需要额外在生成ZPL前处理字符串长度。
指令参数说明
^FB的语法为 ^FB宽度,最大行数,行间距,对齐方式,缩进开关
针对你的场景:
- 客户名称列从x坐标400开始,金额列从x坐标650开始,因此字段块宽度设为
240(预留10点边距避免贴边) - 最大行数设为
1,超出宽度的内容会直接截断,不会换行也不会溢出到右侧列
修改后的完整ZPL代码
^XA ^FO15,300^A0,25^FD Invoice #^FS ^FO150,300^A0,25^FD Date^FS ^FO300,300^A0,25^FD Cust #^FS ^FO400,300^A0,25^FD Name^FS ^FO650,300^A0,25^FD Amount^FS ^FO10,330^GB800,3,3^FS ^FO15,350^A0,25^TBN,305,25^FD200001^FS ^FO150,350^A0,25^FD10/26/2021^FS ^FO300,350^A0,25^FD100^FS ^FO400,350^A0,25^FB240,1,0,L,0^FDThis is a test customerrrrrrrrrr^FS ^FO650,350^A0,25^FD$129.90^FS ^XZ
如果后续其他列也有溢出风险,参照同样的逻辑给对应^FD前加上匹配列宽的^FB指令即可。
内容的提问来源于stack exchange,提问作者owl1929839
相关产品推荐
相关产品推荐

