标签打印 TSPL 语法

世界各大条码打印设备厂商生产的打印机都采用了各自不同的打印语言以实现其打印,如 Zebra 系列的 ZPL(斑马条码打印机工业型号),Eltron 的 EPL(斑马条码打印机桌面小机器),Datamax 的 DPL 等。

目前我们公司使用的是 TSC 的打印机,其语言是 TSPL。

1
2
3
4
5
SIZE 60 mm,40 mm 
GAP 2 mm
CLS
TEXT 50,50,"4",0,1,1,"DEMO FOR TEXT"
PRINT 1

一张标签通常包含三个部分:

  • 系统设定:包括标签尺寸(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

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

参数 说明 值说明
二维码水平方向起始点坐标
二维码垂直方向起始点坐标
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 编码的字符串

官方手册

tspl_tspl2_programming_2018_5_17_scjiantizhongwen.pdf