TSPL / TSPL2 完整指令集中文手册

Part 7 - 开发实例与工程实践


目录

    1. TSPL开发流程
    1. 标签坐标设计
    1. DPI与坐标换算
    1. C#打印示例
    1. Java打印示例
    1. Python TCP打印示例
    1. USB打印示例
    1. 标签模板设计
    1. 常见问题排查

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 dots

300 DPI换算

公式:

dots = mm × 12

示例:

10mm:

10 × 12 = 120 dots

4. 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 1

8. 标签模板设计

推荐模板结构:

固定区域

+

动态数据

+

条码

+

二维码

+

图片

例如:

商品标签:

+----------------------+

商品名称

型号

批次

条码

二维码

+----------------------+

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 1

10. 快递面单示例

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 1

11. 常见问题排查


问题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全部命令列表
  • 参数速查
  • 支持机型说明
  • 常用组合模板
  • 实际生产调试清单
最后修改:2026 年 08 月 05 日
如果觉得我的文章对你有用,请随意赞赏