藍芽印表機
# 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
開頭),連線完成後返回到主界面,點選列印按鈕,藍芽印表機接收到列印指令列印相應的內容。