问题概述:斑马105SL打印机通过串口使用ZPL指令打印时,若需打印图标,通常需要发送大量字符串。为提高效率,可将图标生成固定文件,之后仅需发送文件名即可调用对应图标。本文介绍具体实现方法。
内存配置要求
斑马105SL支持此功能,但需注意内存配置。老型号105SL配备4MB RAM(R:)和2MB闪存(E:),新型号则配备6MB RAM(R:)和4MB闪存(E:)。为避免图形过大导致下载溢出,请确保图形大小在内存容量范围内。
ZPL指令实现
通常使用ZPL中的~DG指令(下载图形)和^XG或^IL指令(调用图形)完成。^XG与^IL的区别在于:^XG支持图形缩放,而^IL不支持。
~DG指令(下载图形)
格式:~DGd:o.GRF,t,w,data
- d:存储位置,可选R、E、B、A
- o:文件名,1-8个字母数字字符
- t:图形占用字节数(bits)
- w:每行的字节数
- data:ASCII字符串
t参数计算公式:t = (x * z / 8) * (y * z),其中x为图形宽度(mm),y为图形高度(mm),z为打印机分辨率(dots/mm),8为每字节位数。
示例:8mm宽、16mm高的图形,在105SL-203dpi打印机上,t = (8 * 12 / 8) * (16 * 12) = 2304。
^XG指令(调用图形)
格式:^XGd:o.GRF,mx,my
- d:源位置,可选R、E、B、A
- o:文件名
- mx:X轴放大倍数(1-10)
- my:Y轴放大倍数(1-10)
^IL指令(调用图形)
格式:^ILd:o.GRF
- d:源位置,可选R、E、B、A
- o:文件名
示例代码
下载图形:
~DGR:SAMPLE.GRF,00080,010,
FFFFFFFFFFFFFFFFFFFF
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFFFFFFFFFFFFFFFFFF
调用图形(^XG):
^XA
^F020,20^XGR:SAMPLE.GRF,1,1^FS
^XZ
调用图形(^IL):
^XA
^F020,20^ILR:SAMPLE.GRF^FS
^XZ
图片转换为GRF格式
以斑马Logo为例,转换步骤如下:
- 确保图片格式为PCX或TIF。
- 使用ZTOOLS工具中的“Convert Graphic File”功能,将PCX/TIF文件转换为GRF格式。
转换后的GRF代码示例(部分):
~DGR:ZLOGO,02180,020,E0000000000000000000000000000000000001A0
0000000000000000000000000000000000000040
...(完整代码略)
小结
通过~DG指令下载图形至打印机内存,再利用^XG或^IL指令调用,可显著减少打印图标时的数据传输量。注意内存容量和图形大小,并正确计算t参数。使用ZTOOLS工具可方便地将图片转换为GRF格式。


