Original thread:
https://www.b4x.com/android/forum/threads/bluetooth-printing-via-spp.17692/page-12
I simlified the above's example to print on a BT POS printer like this
View attachment 53390
with the correct codepage to print special chars like "äöüßéè", etc. (codepage 1252).
Steps:
- switch on the printer
- switch on BT on your device
- pair your device with the printer (pw on my printer is 1234, take a look at the manual)
- wait 'till it's paired and see the printer's name
- insert the first unique chars in the code (the MAC address is retrieved via the printers name)
- run the app and print
#Region Module Attributes
#FullScreen: False
#IncludeTitle: True
#ApplicationLabel: Bluetooth POS Printing
#VersionCode: 1
#VersionName:
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#End Region
Sub Process_Globals
Dim PrintBuffer As String
Dim BtAdmin As BluetoothAdmin
Dim BTConnection As Serial
Dim Printer As TextWriter
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
BtAdmin.Initialize("BlueTooth")
BTConnection.Initialize("Printer")
Dim PairedDevices As Map
PairedDevices = BTConnection.GetPairedDevices
Dim l As List
Dim DeviceName, MacAddress As String
l.Initialize
For i = 0 To PairedDevices.Size - 1 'Check all devices
l.Add(PairedDevices.GetKeyAt(i))
DeviceName=PairedDevices.Getkeyat(i)
MacAddress=PairedDevices.GetValueAt(i)
Log(DeviceName & " -> " & MacAddress)
If DeviceName.Contains("Thermal") Then 'Insert the BT-Name of the printer or use the MAC address
Exit
End If
Next
BTConnection.Connect(MacAddress)
End If
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause
End Sub
Sub Printer_Connected (Success As Boolean)
If Success Then
Printer.Initialize2(BTConnection.OutputStream,"windows-1252") 'important to print f.e. German/French chars
PrintBuffer=Chr(27)&"t"&Chr(16)&"Hello öäüßéèê" 'Set codepage 1252
Printer.WriteLine(PrintBuffer)
Printer.Flush
Msgbox("Printed!","")
Printer.Close
BTConnection.Disconnect 'disable this if you like
Else
Msgbox("No printer found...","Print error")
End If
End Sub
Dear Sir
Thank you for the coding example In the program I created, when I ran the command "PairedDevices = BTConnection.GetPairedDevices"
the program immediately exited, there was no message.
Are there certain settings that must be installed?
Here is the beginning of my program:
#Region Module Attributes
#FullScreen: True
#IncludeTitle: True
#ApplicationLabel: RP Penjualan
#VersionCode: 1
#VersionName: satu
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger: true
#End Region
Sub Process_Globals
Dim PrintBuffer As String
Dim BtAdmin As BluetoothAdmin
Dim BTConnection As Serial
Dim Printer As TextWriter
Dim DeviceName, MacAddress As String
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
BtAdmin.Initialize("BlueTooth")
BTConnection.Initialize("Printer")
Dim PairedDevices As Map
PairedDevices = BTConnection.GetPairedDevices
Dim l As List
l.Initialize
For i = 0 To PairedDevices.Size - 1 'Check all devices
l.Add(PairedDevices.GetKeyAt(i))
DeviceName=PairedDevices.Getkeyat(i)
MacAddress=PairedDevices.GetValueAt(i)
Log(DeviceName & " -> " & MacAddress)
If DeviceName.Contains("RPP210A") Then
Exit
End If
Next
End If
End Sub
Thankyou
regards
kilat kosasih