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
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
I simlified the above's example to print on a BT POS printer like this
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
B4X:
#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