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

在使用前,先将USB串口转接线的串口端与标签打印机的串口端连接,再将USB端与手机的USB端口进行连接。打印机通电并打开打印机的电源开关。 通过范例学习,可以掌握串口打印机的连接以及使用。
# 2. 设计明细
开启PinToo设计器,分别加入下插图之控件。或者点击左上角的[打开模板Lib文件]选择模板文件来打开对应模板。

①:TfxImage组件,控件名称为fxImageSearch。
②:TfxText组件,控件名称为fxTextStatus。
③:TfxRDIconFlicker组件,控件名称为fxRDIconFlickerPrint。
④:TfxSwitchButton组件,控件名称为fxSwitchButtonEdit。
⑤:TfxUsbSerail组件,控件名称为fxUsbSerial。
⑥:TfxImage组件,控件名称为fxImageConnect。
fxRunFrame属性设置
Height:设置页面高度=800。Width:设置页面宽度=400。
fxComboBox属性设置
Name:设置控件名称=fxComboBox。Visible:设置控件是否可见=False。
fxMemoContent属性设置
Height:设置控件高度=240。Width:设置控件宽度=380。Lines:设置打印需要输入的内容,如下所示。
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.fasterp.com" PRINT 1 EOP1
2
3
4
5
6
7
8
9
10
11
12
13①fxImageSearch属性设置
Height:设置控件高度=40。Width:设置控件宽度=40。Name:设置控件名称=fxImageSearch。WarpMode:设置图像在控件中显示的模式,设置为Fit,即图像适应于控件大小。Bitmap:设置显示的图片,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。

②fxTextStatus属性设置
Text:设置显示文字=等待连接。Height:设置控件高度=40。Width:设置控件宽度=280。Name:设置控件名称=fxTextStatus。TextSettings:设置文字字体的相关信息。设置Font.Size=18。FontColor=White。HorzAlign:设置文字在控件中的水平位置=Center。VertAlign:设置文字在控件中的垂直位置=Center。
③fxRDIconFlickerPrint属性设置
Height:设置控件高度=140。Width:设置控件宽度=145。Name:设置控件名称=fxRDIconFlickerPrint。BitmapIcon:设置显示的图片,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。

④fxSwitchButtonEdit属性设置
Height:设置控件高度=40。Width:设置控件宽度=40。Name:设置控件名称=fxSwitchButtonEdit。SwitchOffBmp:设置开关状态为关时显示的图像,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。

SwitchOnBmp:设置开关状态为开时显示的图像,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。

⑤fxUsbSerial属性设置
UsbSerialType:设置USB串口的连接类型,设置为RS232。
⑥fxImageConnnect属性设置
Height:设置控件高度=40。Width:设置控件宽度=40。Name:设置控件名称=fxImageConnect。WarpMode:设置图像在控件中显示的模式,设置为Fit,即图像适应于控件大小。Bitmap:设置显示的图片,双击该属性或者点击属性右侧的[...]打开图像编辑器。点击[Load...]打开资源管理器,选择所需的图片后点击[打开],选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]按钮完成图像修改。

# 3. 程序设计
点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程序需要引用uUsbSerail单元。
# 3.1. 程序初始设置
该程序无初始设置。
# 3.2. 事件设置
- ①fxImageSearch-OnClick事件
点击按钮以加载串口列表并显示。
Procedure fxImageSearchOnClick(Sender: TObject);
//点击搜索按钮寻找打印机
Begin
if fxUsbSerial.Devices.Text = '' Then
begin
fxTextStatus.Text := '请检查串口是否连接';
Exit;
End;
fxComboBox.Items := fxUsbSerial.Devices;
fxComboBox.DropDown;
End;
2
3
4
5
6
7
8
9
10
11
- fxComboBox-OnChange事件
当选择设备时,将选择的设备连赋值给控件。
Procedure fxComboBoxOnChange(Sender: TObject);
Begin
fxUsbSerial.UsbDevice := fxComboBox.Items.Strings[fxComboBox.ItemIndex];
fxTextStatus.Text := '已选择打印机';
End;
2
3
4
5
- ⑥fxImageConnnect-OnClick事件
当点击连接按钮时打开串口通信。
Procedure fxImageConnectOnClick(Sender: TObject);
//连接打印机
Begin
fxUsbSerial.Open(True);
if fxUsbSerial.Devices.Text <> '' Then
fxTextStatus.Text := '打印机已连接';
End;
2
3
4
5
6
7
- ③fxRDIconFlickerPrint-OnClick事件
点击以向打印机串口发送打印数据。
Procedure fxRDIconFlickerPrintOnClick(Sender: TObject);
//打印
Begin
fxUsbSerial.WriteStrToBytes(fxMemoContent.Lines.Text,'Ansi');
End;
2
3
4
5
- ④fxSwitchButtonEdit-OnSwitch事件
点击切换按钮以打开或者关闭打印命令编辑界面。
Procedure fxSwitchButtonEditOnSwitch(Sender: TObject);
//编辑打印内容
Begin
fxMemoContent.Visible := fxSwitchButtonEdit.IsChecked;
End;
2
3
4
5
# 4. 运行结果
使用鼠标在 PinToo 菜单,点击[保存至数据库]按钮,将其保存至数据库,点击[调试运行]确认能够正常打开。

通过同步中心,将程序上传至手机PinToo运行;同步时,请确保手机已经运行PinToo,并且已经登陆。


点击左侧的搜索按钮,打开串口设备列表,选择对应的串口,点击右侧的连接按钮开启串口连接。点击打印按钮下方的按钮可显示或者隐藏文本编辑框,该文本编辑框中显示的是打印格式内容。点击上方的打印按钮,连接串口的打印机根据指令打印出对应的标签。