标签打印 TSPL 语法
世界各大条码打印设备厂商生产的打印机都采用了各自不同的打印语言以实现其打印,如 Zebra 系列的 ZPL(斑马条码打印机工业型号),Eltron 的 EPL(斑马条码打印机桌面小机器),Datamax 的 DPL 等。
目前我们公司使用的是 TSC 的打印机,其语言是 TSPL。
1 | SIZE 60 mm,40 mm |
一张标签通常包含三个部分:
- 系统设定:包括标签尺寸(SIZE、GAP)和清除缓冲区数据指令(CLS)等。
- 打印内容设定:打印具体内容。
- 执行打印指令:用于打印出设计好的标签,在此指令发送后打印机才执行打印动作。
需要特别注意,在每一条指令结尾需要加入换行符,即字符串 “\r\n” 或 16 进制 0x0D 0x0A
目标坐标计算方法
200DPI:1mm = 8dots,也就是说在写实际指令时 X 和 Y 要乘上 8(7mm * 8 = 56,3mm * 8 = 24)
常用语法指令
SIZE
SIZE 60 mm,40 mm
用于设定卷标纸的宽度和长度,使用公制单位。200DPI:1mm = 8dots,在单位与数字之间必须添加一个空。
一倍倍率下,60mm 宽的标签,可以打印 19 个全角中文字符或者 39 个半角字母数字,中文字体高度为 24dtos。
DIRECTION
DIRECTION 1
定义打印机的打印方向及内容是否镜面反射
DIRECTION n[,m]
- n:打印方向是否反转
- m:内容是否反转
以下箭头为出纸方向
GAP
GAP 2 mm
用于定义两张卷标纸间的垂直间距距离。 可以设置 2mm 或者不设置。
CLS
用于清除图像缓冲区(image buffer) 的数据。 注:此项指令必须置于 SIZE 指令之后。
REM
REM ********************************
REM This is a demonstration program*
REM ********************************
注释
不能用 #开头
PRINT 1
用于打印出存储于影像缓冲区内的数据,可设置打印多张,需放在全部指令最后的位置。
END
此命令用来标示程序结束
TEXT
用于打印字符串。
- 打印不会自动换行,超出宽度的文字将无法正常打印,所以多行文本,需要用到多个 TEXT 指令,每一打印文本的起始打印位置都需要手动设置,单位为 dtos,即点阵数。60mm40mm 的点阵比为 480320。
- TSPL 打印时没有居中指令,需要手动设置
指令语法:
TEXT x,y,”font”,rotation,x-multiplication,y-multiplication,”content”
例:
TEXT 0,10,”TSS24.BF2”,0,1,1,” 一二三四五六七八九十二二三四五六七八九十”
TEXT 0,30,”TSS24.BF2”,0,1,1,”12345678902234567890323456789042345678905234567890”
参数 | 说明 | 值 | 值说明 |
---|---|---|---|
x | 文字 X 方向起始点坐标 | ||
y | 文字 Y 方向起始点坐标 | ||
font | 字体名称 | 1 | 8×12 dot 英数字体 |
2 | 12×20 dot 英数字体 | ||
3 | 16×24 dot 英数字体 | ||
4 | 24×32 dot 英数字体 | ||
5 | 32×48 dot 英数字体,仅可打印大写字母 | ||
6 | 14×19 dot 英数字体 OCR-B | ||
7 | 21×27 dot 英数字体 OCR-B | ||
8 | 14×25 dot 英数字体 OCR-A | ||
9 | 9×17 dot 英数字体 | ||
10 | 12×24 dot 英数字体 | ||
TST24.BF2 | 繁体中文 24×24Font (大五码) | ||
TSS24.BF2 | 简体中文 24×24Font(GB 码) | ||
K | 韩文 24×24Font(KS 码) | ||
rotation | 文字旋转角度(顺时针方向) | 0 | 0 度 |
90 | 90 度 | ||
180 | 180 度 | ||
270 | 270 度 | ||
x-multiplication | X 方向放大倍率 1-10 | ||
y-multiplication | Y 方向放大倍率 1-10 |
若要打印双引号时 (“) 在程序中请使用 [”] 来打印双引号
若要打印 0D (hex) 字符时,请在程序中使用 [R] 来打印 CR
若要打印 0A (hex) 字符时,请在程序中使用 [A] 来打印 LF
BAR
该指令用于在标签上画线。
指令语法:
BAR x,y,width,height
例:BAR 100,100,300,200
参数 | 说明 |
---|---|
x | 线条左上角 X 坐标,单位 dot |
y | 线条左上角 Y 坐标,单位 dot |
width | 线宽,单位 dot |
height | 线高,单位 dot |
BARCODE
用来画一维条码
指令语法:
BARCODE x,y,”code type”,height,human readable,rotation,narrow,wide,”content”
例:BARCODE 100,100,”128”,50,0,0,2,4,”4600408762105840”
参数 | 说明 | 值 | 值说明 |
---|---|---|---|
x | 左上角水平坐标起点,以点(dot)表示 | ||
y | 左上角垂直坐标起点,以点(dot)表示 | ||
code type | 条码类型,建议使用 39 或 128 | ||
height | 条形码高度,以点(dot)表示 | ||
Human readable | 0 表示人眼不可识,1 表示人眼可识,即在条码下显示内容 需要预留条码内容的显示位置,内容高度 24dot |
||
rotation | 条形码旋转角度,顺时针方向 | 0 | 不旋转 |
90 | 顺时针方向旋转 90 度 | ||
180 | 顺时针方向旋转 180 度 | ||
270 | 顺时针方向旋转 270 度 | ||
narrow | 窄 bar 宽度,以点(dot)表示 | ||
wide | 宽 bar 宽度,以点(dot)表示 | ||
content | 一维码内容 |
QRCODE
用来打印二维码
程序语法:
QRCODE x,y,ECC level,cellwidth,mode,rotation,”data string”
例:QRCODE 50,50,M,6,A,0,”www.feyin.cn“
参数 | 说明 | 值 | 值说明 |
---|---|---|---|
x | 二维码水平方向起始点坐标 | ||
y | 二维码垂直方向起始点坐标 | ||
ECC level | 选择 QRCODE 纠错等级 | L | 7% |
M | 15% | ||
Q | 25% | ||
H | 30% | ||
cell width | 二维码宽度 1-10 | ||
mode | 手动 / 自动编码 | A | Auto |
M | Manual | ||
rotation | 旋转角度(顺时针方向) | 0 | 0 度 |
90 | 90 度 | ||
180 | 180 度 | ||
270 | 270 度 | ||
data string | 编码的字符串 |