蓝牙打印机
# PinToo之蓝牙打印机
# 1. 说明
范例采用蓝牙通讯协议,通过PinToo控制蓝牙打印机进行打印操作。本范例使用的打印机为佳博GP-3120TU标签打印机,该打印机带有蓝牙功能,可进行蓝牙通信的操作。该打印机使用TSPL打印语言来实现串口打印通信的功能,故通过蓝牙打印时输出为TSPL格式的打印语句。GP-3120TU的外观如下图所示。

通过范例的学习,可以掌握打印语言的基本格式。并通过打印语言实现蓝牙无线打印的功能。
# 2. 设计明细
开启PinToo设计器,分别加入下插图之控件。或者点击左上角的[打开模板Lib文件]
选择模板文件来打开对应模板。

①:TfxGPrinter组件,控件名称为fxGPrinter1
。
②:TfxSuperButton组件,控件名称为fxSuperButtonPaired
。
③:TfxLabel组件,控件名称为fxLabel2
。
④:TfxSuperButton组件,控件名称为fxSuperButtonPrint
。
fxRunFrame属性设置
Height
:设置页面高度=800
。Width
:设置页面宽度=400
。
①fxGPrinter1属性设置
DeviceType
:设置设备的连接类型=Bluetooth
。
②fxSuperButtonPaired属性设置
Height
:设置控件高度=40
。Width
:设置控件宽度=40
。ButtonType
:设置按钮类型,设置为TfxSvgButton
。Name
:设置控件名称=fxSuperButtonPaired
。ButtonType.SvgData
:设置SVG数据,其数据内容如下。
<path d="M31.9325103759766,13.0669937133789 C32.3362121582031,15.0472459793091 32.5401840209961,17.3547077178955 32.5401840209961,20.0021266937256 C32.5401840209961,22.6452980041504 32.3362121582031,24.9570064544678 31.9325103759766,26.9372596740723 C31.5288105010986,28.9175128936768 30.9763774871826,30.540807723999 30.2709712982178,31.8114013671875 C29.5698070526123,33.0819931030273 28.6774196624756,34.1103630065918 27.6065502166748,34.8965148925781 C26.5356845855713,35.6826667785645 25.3840789794922,36.2308502197266 24.1644802093506,36.5368118286133 C22.9448833465576,36.8470191955566 21.555305480957,37 20.0000019073486,37 C18.4446983337402,37 17.055118560791,36.8427696228027 15.8355197906494,36.5368118286133 C14.6159229278564,36.2266006469727 13.4643173217773,35.6784172058105 12.3934507369995,34.8965148925781 C11.3183355331421,34.1103630065918 10.4301948547363,33.0862426757813 9.72903251647949,31.8114013671875 C9.02787017822266,30.540807723999 8.47118949890137,28.9132633209229 8.06749057769775,26.9372596740723 C7.66379070281982,24.9570083618164 7.45981597900391,22.6495456695557 7.45981597900391,20.0021266937256 C7.45981597900391,17.3589553833008 7.66379070281982,15.0472450256348 8.06749057769775,13.0669927597046 C8.47118949890137,11.0867395401001 9.02362060546875,9.4634428024292 9.72903251647949,8.19285106658936 C10.4344453811646,6.92225933074951 11.3225841522217,5.89388847351074 12.3934507369995,5.10773658752441 C13.4685668945313,4.32583475112915 14.6159229278564,3.77340364456177 15.8355197906494,3.46744155883789 C17.055118560791,3.15723013877869 18.444694519043,3 20.0000019073486,3 C21.555305480957,3 22.9448833465576,3.15723013877869 24.1644802093506,3.46319222450256 C25.3840789794922,3.77340364456177 26.5356845855713,4.32158470153809 27.6065502166748,5.10348701477051 C28.6816654205322,5.88963890075684 29.5698070526123,6.91376113891602 30.2709712982178,8.18860244750977 C30.972131729126,9.4634428024292 31.5245609283447,11.0867404937744 31.9325103759766,13.0669927597046 Z M18.8993873596191,34.607551574707 L27.7000408172607,25.8026504516602 L21.895263671875,19.9978790283203 L27.7000350952148,14.1931028366089 L18.8993835449219,5.38820266723633 L18.8993835449219,16.9807548522949 L14.0634918212891,12.1448593139648 L12.2999620437622,13.9083890914917 L18.3724555969238,19.9978790283203 L12.2999620437622,26.087366104126 L14.0634918212891,27.8508949279785 L18.8993873596191,23.0150012969971 L18.8993873596191,34.607551574707 Z M21.3640804290771,11.3842029571533 L24.189977645874,14.2101001739502 L21.3810787200928,17.0189990997314 L21.3640804290771,11.3842029571533 Z M21.385326385498,22.9767551422119 L24.1942253112793,25.7856521606445 L21.3683280944824,28.6115474700928 L21.385326385498,22.9767551422119 Z" p-id="2763" fill="#FF1296DB" stroke="Null"></path>
1③fxLabel2属性设置
Height
:设置控件高度=35
。Width
:设置控件宽度=315
。Text
:设置标签文本=蓝牙MAC地址:DC:0D:30:75:4B:6C
。TextSettings.Font
:设置字体大小及颜色。Size
=18,Style
中将fsBold
勾选。使用该属性需将StyledSettings
中的所有设定为True
的选项的勾去除。
④fxSuperButtonPrint属性设置
Height
:设置控件高度=250
。Width
:设置控件宽度=250
。ButtonType
:设置按钮类型,设置为TfxImageButton
。Name
:设置控件名称=fxSuperButtonPrint
。Opacity
:设置透明度=0.8
。Bitmap
:设置位图样式。双击该属性或者点击属性右侧的[...]
打开图像编辑器。点击[Load...]
打开资源管理器,选择所需的图片后点击[打开]
,选择的图像会显示在预览框中。可在该页面下进行裁切或者缩放像素以使图像与控件的宽度高度相适应,修改完成后点击[OK]
按钮完成图像修改。
# 3. 程序设计
点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程序需要引用GPrinter
单元。
# 3.1. 程序初始设置
将蓝牙获取到的Mac地址赋值给控件。
procedure MacAddr(AText:string);
//获取打印机的MAC地址,并将其赋值给打印机
begin
fxGPrinter1.BluetoothMacAddress:=AText; //将蓝牙地址赋值给控件
if fxGPrinter1.OpenPort then
begin
showmessage('连接成功!');
fxLabel2.Text := '蓝牙MAC地址:' + fxGPrinter1.BluetoothMacAddress;
End
else
showmessage('连接失败!');
End;
2
3
4
5
6
7
8
9
10
11
12
# 3.2. 事件设置
- ②fxSuperButtonPaired-OnClick事件
点击按钮打开蓝牙配对界面,连接蓝牙设备。
Procedure fxSuperButtonPairedOnClick(Sender: TObject);
//蓝牙配对连接
Begin
fxShowBluetoothSetting('MacAddr');
End;
2
3
4
5
- ④fxSuperButtonPrint-OnClick事件
点击按钮,加载打印语言开始打印。
Procedure fxSuperButtonPrintOnClick(Sender: TObject);
var
ALabelCommand: TfxGPrinterLabelCommand;
Begin
ALabelCommand := TCCGPrinterLabelCommand.Create; //创建标签打印对象
ALabelCommand.addCls; // 清除打印缓冲区数据
ALabelCommand.addSize(80, 60); // 设置标签大小 mm,前者为标签宽度,后者为标签高度
ALabelCommand.addGap(2); // 设置标签间隙,按照实际尺寸设置,如果为无间隙纸则设置为0
ALabelCommand.addDirection(DIRECTION_FORWARD,MIRROR_NORMAL);//设置显示的方向
ALabelCommand.addReference(0, 0); // 设置原点坐标
try
ALabelCommand.addText(8 * 2, 4 * 5,
SIMPLIFIED_CHINESE,
ROTATION_0, //设置旋转
MUL_2, //设置文字大小
MUL_2, '姓名:爱招飞');
ALabelCommand.addText(8 * 2, 4 * 15,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '性别:男');
ALabelCommand.addText(8 * 2, 4 * 25,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '年龄:99岁');
ALabelCommand.add1DBarcode(8 * 2, 4 * 35, //添加条形码
CODE128, 8 * 12,
EANBEL,
ROTATION_0, '18888888888');
ALabelCommand.addQRCode(8 * 30, 4 * 35,
LEVEL_L, 5,
ROTATION_0, 'PinToo(拼图) 二维码');
Finally
ALabelCommand.addPrint(1,1); // 设置打印份数
ALabelCommand.addSound(2, 100); // 设置蜂鸣器
// 发送打印标签命令
fxGPrinter1.sendLabelCommand(ALabelCommand);
ALabelCommand.Free;
End;
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 4. 运行结果
使用鼠标在 PinToo 菜单,点击[调试运行]
按钮,测试运行结果。

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

点击蓝牙配对按钮,打开蓝牙配对界面,选择打印机的蓝牙设备名称(通常名称以Printer
开头),连接完成后返回到主界面,点击打印按钮,蓝牙打印机接收到打印指令打印相应的内容。