串口打印机
# Smart之串口打印机
# 1. 说明
范例采用串口通讯协议,控制串口打印机进行打印输出。通过向串口输入特定打印指令的字符,打印机对指令进行解析并打印出所需的内容。目前市面上的一些带有串口的标签打印机使用的是TSPL(TSC标签打印机的串口打印编程语言),通过串口输入的内容需按照TSPL的规范进行。
范例使用到的是佳博GP-3120TN标签打印机,该打印机带有一个串口接口,可用于接收TSPL指令进行打印操作,其外观如下图所示。

在使用前,先将USB串口转接线的串口端与标签打印机的串口端连接,再将USB端与PC进行连接。打印机通电并打开打印机的电源开关,待PC端确认设备连接后,在Windows的设备管理器中查看连接的串口端口号,该端口号会在接下来的范例中使用到。
通过范例学习,可以掌握TComport组件的基本属性,以及通过串口进行打印操作的方法。
# 2. 设计明细
开启Smart智慧控制平台,分别加入下插图之控件。或者通过点击菜单栏[文件]-[打开项目]
选择范例项目文件来打开该范例。

①:TImage组件,控件名称为Image1
。
②:TLabel组件,控件名称为Label9
。
③:TImage组件,控件名称为Image2
。
④:TMemo组件,控件名称为Memo1
。
⑤:TComPort组件,控件名称为ComPort1
。
⑥:TLabel组件,控件名称为Label5
。
⑦:TLabel组件,控件名称为Label1
。
⑧:TSwitchButton组件,控件名称为SwitchButton1
。
⑨:TSwitchButton组件,控件名称为SwitchButton2
。
Main窗体属性设置
Caption
:设置窗体标题=串口打印机
。ClientHeight
:设置窗体显示区的高度=480
。ClientWidth
:设置窗体显示区的宽度=384
。
①Image1属性设置
Align
:设定对齐方式=alClient
。Stretch
:设定图像拉伸=True
。PicTure
:设置图像。点击Picture
属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
②Label9属性设置
AutoSize
:设置控件大小与字体自适应=True
。Caption
:设置显示标签的内容=串口打印机
。Font
:设置字体,点击该属性右侧[...]
按钮或者双击该属性打开字体设置界面,设置内容如下。
③Image2属性设置
Height
:设置控件高度=245
。Width
:设置控件宽度=289
。PicTure
:设置图像。点击Picture
属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
④Memo1属性设置
Height
:设置控件高度=181
。Width
:设置控件宽度=288
。Lines
:设置Memo中显示的打印格式的内容。其中的内容是按照TSPL的规范进行编写的,范例内容如下:
SIZE 40 mm,60 mm CLS TEXT 50,30,"TSS24.BF2",0,1,1,"商品清单" TEXT 50,45,"4",0,1,1,"--------------------" TEXT 50,60,"TSS24.BF2",0,1,1,"西红柿 1 15 15 " TEXT 50,90,"TSS24.BF2",0,1,1,"娃哈哈 1 15 15 " TEXT 50,120,"TSS24.BF2",0,1,1,"牛肉干 1 15 15 " TEXT 50,150,"TSS24.BF2",0,1,1,"红牛 1 15 15 " TEXT 50,170,"4",0,1,1,"--------------------" TEXT 50,190,"TSS24.BF2",0,1,1,"合计 1 15 15 " QRCODE 50,210,L,4,A,0,"www.isoface.cn" PRINT 1 EOP
1
2
3
4
5
6
7
8
9
10
11
12
13Visible
:设置控件是否可见=False
。
⑤ComPort属性设置
BaudRate
:通信的连接速率,设置为br9600
。DataBits
:通信的数据位数。设置为db8
。DeviceName
:设备的端口号,设置为打印机串口连接的端口号。
⑥Label5属性设置
AutoSize
:设置控件大小与字体自适应=True
。Caption
:设置显示标签的内容=显示打印格式
。Font
:设置字体,点击该属性右侧[...]
按钮或者双击该属性打开字体设置界面,设置内容如下。
⑦Label1属性设置
AutoSize
:设置控件大小与字体自适应=True
。Caption
:设置显示标签的内容=打开串口
。Font
:设置字体,点击该属性右侧[...]
按钮或者双击该属性打开字体设置界面,设置内容如下。
⑧SwitchButton1属性设置
Height
:设置控件高度=38
。Width
:设置控件宽度=40
。SwitchOff
:设置IsChecked
=False
时显示的图片。点击属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
SwitchOn
:设置IsChecked
=True
时显示的图片。点击属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
⑨SwitchButton2属性设置
Height
:设置控件高度=38
。Width
:设置控件宽度=40
。SwitchOff
:设置IsChecked
=False
时显示的图片。点击属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
SwitchOn
:设置IsChecked
=True
时显示的图片。点击属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
# 3. 程序设计
# 3.1. 程序初始设置
该程序无初始设置。
# 3.2. 事件设置
- ③Image2-OnClick事件
点击打印机的图像时,串口处于连接状态,则向串口发送打印机指令,打印机打印出对应的内容。
procedure TMyHandler.Image2Click;
//点击打印
begin
IOT.ComWriteAnsiLine(FThis.ComPort1,FThis.Memo1.Lines.Text);
end;
2
3
4
5
- ⑧SwitchButton1-OnSwitch事件
显示打印格式的开关按钮,点击以切换是否显示打印格式内容的文本框。
procedure TMyHandler.SwitchButton1Switch;
//是否显示打印格式
begin
FThis.Memo1.Visible := FThis.SwitchButton1.IsChecked;
end;
2
3
4
5
- ⑨SwitchButton2-OnSwitch事件
打开关闭串口的开关按钮,点击以打开或者关闭串口。
procedure TMyHandler.SwitchButton2Switch;
//打开或者关闭串口
begin
if FThis.SwitchButton2.IsChecked then
begin
iot.ComOpen(FThis.ComPort1);
end
else
begin
iot.ComClose(FThis.ComPort1);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
# 4. 运行结果
通过工具栏保存,将程序保存为 sdb 项目文件。

使用鼠标点击工具栏运行(Run),测试运行结果。程序运行时,点击打开串口
右侧的开关以打开串口,显示打印格式
右侧的开关点击可切换显示或者关闭打印格式文本框的显示。在串口连接的情况下,点击打印机图像,打印机会打印出对应标签中的内容。
