TSPL / TSPL2 完整指令集中文手册
Part 7 - 开发实例与工程实践
目录
- TSPL开发流程
- 标签坐标设计
- DPI与坐标换算
- C#打印示例
- Java打印示例
- Python TCP打印示例
- USB打印示例
- 标签模板设计
- 常见问题排查
1. TSPL开发流程
一个完整打印系统通常流程:
业务系统
↓
生成TSPL字符串
↓
发送打印机
↓
打印机执行
↓
查询状态
↓
记录结果2. 标签坐标设计
TSPL采用点坐标。
坐标原点:
(0,0)位于:
标签左上角示例:
+----------------------+
| |
| (50,50) |
| TEXT |
| |
+----------------------+3. DPI与坐标换算
打印机常见分辨率:
| DPI | 每毫米点数 |
|---|---|
| 203 DPI | 约8 dots/mm |
| 300 DPI | 约12 dots/mm |
| 600 DPI | 约24 dots/mm |
203 DPI换算
公式:
dots = mm × 8示例:
10mm:
10 × 8 = 80 dots300 DPI换算
公式:
dots = mm × 12示例:
10mm:
10 × 12 = 120 dots4. C#打印示例
TCP/IP发送TSPL
using System;
using System.Net.Sockets;
using System.Text;
public class TsplPrinter
{
public static void Print(string ip,int port)
{
string tspl =
@"SIZE 100 mm,50 mm
GAP 3 mm,0
CLS
TEXT 50,50,""3"",0,2,2,""TEST LABEL""
BARCODE 50,120,""128"",60,1,0,2,2,""123456""
PRINT 1";
using(TcpClient client = new TcpClient())
{
client.Connect(ip,port);
NetworkStream stream = client.GetStream();
byte[] data =
Encoding.UTF8.GetBytes(tspl);
stream.Write(data,0,data.Length);
}
}
}调用:
TsplPrinter.Print(
"192.168.1.100",
9100
);5. Java打印示例
import java.net.Socket;
public class TsplPrinter {
public static void print()
throws Exception {
String tspl =
"SIZE 100 mm,50 mm\n"+
"CLS\n"+
"TEXT 50,50,\"3\",0,2,2,\"JAVA TEST\"\n"+
"PRINT 1";
Socket socket =
new Socket(
"192.168.1.100",
9100
);
socket.getOutputStream()
.write(
tspl.getBytes("UTF-8")
);
socket.close();
}
}6. Python TCP打印示例
import socket
printer_ip = "192.168.1.100"
printer_port = 9100
tspl = """
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,2,2,"PYTHON TEST"
PRINT 1
"""
sock = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM
)
sock.connect(
(
printer_ip,
printer_port
)
)
sock.send(
tspl.encode("utf-8")
)
sock.close()7. USB打印示例
Windows环境:
通常通过:
- Windows打印队列
- Raw打印
发送:
RAW TSPL DATA示例:
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"USB PRINT"
PRINT 18. 标签模板设计
推荐模板结构:
固定区域
+
动态数据
+
条码
+
二维码
+
图片例如:
商品标签:
+----------------------+
商品名称
型号
批次
条码
二维码
+----------------------+9. 标准商品标签模板
SIZE 100 mm,60 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"产品名称"
TEXT 30,80,"3",0,1,1,"MODEL-A"
TEXT 30,120,"3",0,1,1,"BATCH:20260805"
BARCODE 30,170,"128",60,1,0,2,2,"123456789"
QRCODE 300,120,L,5,A,0,"MODEL-A"
PRINT 110. 快递面单示例
SIZE 100 mm,150 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"快递单"
BARCODE 50,100,"128",100,1,0,2,2,"SF123456789"
QRCODE 300,100,L,5,A,0,"SF123456789"
BLOCK 30,250,400,100,"3",0,1,1,"收件地址信息"
PRINT 111. 常见问题排查
问题1:中文乱码
原因:
- 编码错误
- 字体不支持
解决:
设置:
CODEPAGE 936或者:
使用:
TSS24.BF2问题2:打印位置偏移
检查:
REFERENCE
OFFSET
SHIFT问题3:标签跑偏
检查:
GAP
BLINE
AUTODETECT执行:
GAPDETECT问题4:条码扫描失败
检查:
- 条码高度
- 密度
- 打印速度
建议:
SPEED 3
DENSITY 8问题5:二维码太小
调整:
QRCODE
cell-size例如:
QRCODE 50,50,L,8,A,0,"TEST"12. 工业项目建议
生产环境建议:
打印前
查询:
~HS确认:
READY打印后
记录:
- 标签编号
- 时间
- 打印状态
- 操作员
13. 推荐架构
Web系统
↓
打印服务
↓
TSPL生成器
↓
打印队列
↓
打印机
↓
状态监控Part 7 完
下一部分:
Part 8 - TSPL完整命令速查表
包含:
- A-Z全部命令列表
- 参数速查
- 支持机型说明
- 常用组合模板
- 实际生产调试清单