This library allows you to print with thermal printers compatible with the ESC POS language in 4 different communication channels (USB, Bluetooth SPP, BLE, LAN)
you can download the ble3 library from here
The DEMO version prints one minute every 2. The full version of the library will be issued to those making a donation (Contact me in private before making a donation)
WARNING: Make sure the library meets all your needs, is compatible with the printer you need to use.
For ESC/POS B4J version see Here
For ESC/POS B4i version see Here
For ZEBRA printer see Here
To print a PDF with ESC/POS see
	
	
		
			
			
				
					
						
							 www.b4x.com
						
					
					www.b4x.com
				
			
		
	
SD_EscPosPrinter
Author: Star-Dust
Version: 1.11
log release
			
			you can download the ble3 library from here
The DEMO version prints one minute every 2. The full version of the library will be issued to those making a donation (Contact me in private before making a donation)
WARNING: Make sure the library meets all your needs, is compatible with the printer you need to use.
For ESC/POS B4J version see Here
For ESC/POS B4i version see Here
For ZEBRA printer see Here
Those who want a different version, such as LAN, USB, NFC please contact me privately.
| OS | Bluetooth SPP | BLE (Beacon) | USB | LAN / WIFI | RS 232 | NFC | 
| Android | x | x | x | x | ||
| iOs | x | x (on request) | ||||
| Window | x | x (on request) | x (on request) | 
To print a PDF with ESC/POS see
[B4X] [B4Xpages] PDF to Image (B4XBitmap)
I often needed to turn a PDF into an image, most of the time to have it printed on a thermal printer. I was looking for simple and cross-platform methods.  This is an example that allows you to get an image with Windows / Android / iOs from a PDF file   NB. For Windows it is necessary to...
				 www.b4x.com
						
					
					www.b4x.com
				SD_EscPosPrinter
Author: Star-Dust
Version: 1.11
- BLE_Printer- Events:- BLEoff
- Connected (services As List)
- Disconnected
- ImageWriteComplete
- PrinterFound (Name As String, ID As String)
- StateChanged (msg As String)
- WriteComplete (Characteristic As String, Success As Boolean)
 
- Fields:- CharatteristicName As String
- Charset As String
- currentState As Int
- ServiceName As String
 
- Functions:- AddTab (ArrayTab As Int()) As String
 Add Tab
 eg. PrinterBLE.AddTab(Array As Byte(100,150,121))
- Beep (Times As Byte, SecondsDurate As Byte) As String
 .Printer.Beep(1..9,1..9)
- CenterJustify  As String
 after this command calls SendBufferToPrinter
- Class_Globals As String
- Connect (ID As String) As String
- Disconnect As String
- Initialize (CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- InitializePrinter As String
- IsInitialized  As Boolean
 Verifica se l'oggetto sia stato inizializzato.
- LeftJustify  As String
 after this command calls SendBufferToPrinter
- PrintBitmap (bmp As Bitmap)
- RightJustify  As String
 after this command calls SendBufferToPrinter
- ScanPrinter As String
- SetCodePage (Code As Byte) As String
 es. Printer.SetCodePage(06) for umlauts char
- Write (Text As String) As String
 Write (Print) a Text
- Write_ArrayByte (B As Byte()) As String
 Write (Send to Printer) a Array of Byte
 eg. PrinterBLE.Write_ArrayByte(Array As Byte(0x1D,150,23))
 eg. PrinterBLE.Write_ArrayByte("Text".GetBytes("UTF8"))
- WriteBarCode (Code As String) As String
- WriteBarCode2D (Code As String) As String
- WriteLine (Text As String) As String
 Write (Print) a Text + CHLF
- WriteList (list As List) As String
 Write (Print) a List
 
- AddTab (ArrayTab As Int()) As String
- Properties:- CodeTable
 es. printer.setCodeTable(Encoding.Code_WPC1252)
 aftet this command calls SendBufferToPrinter
- isConnect As Boolean [read only]
- isScanning As Boolean [read only]
- Spacing
 after setSpacing command calls SendBufferToPrinter
 
- CodeTable
 
- Events:
- BT_Printer
 Note: AddPermission(android.permission.ACCESS_COARSE_LOCATION)- Events:- BluetoothIsDisabled
- ConnectedToPrint (Success As Boolean)
- DataReceived (Buffer() As Byte)
- DisconnectToPrint (Mac As String)
- DiscoveryComplete (Printers As Map)
- DiscoveryFinished
- DiscoveryNewPrinter (PrintedFound As Map, DeviceClass As Int)
- DiscoveryNoDeviceFound
- ErrorDiscovery
- ListPrinterAssociated (ListNameAndMac As Map)
- SendingError (Mac As String)
- SendTerminated
 
- Fields:- Charset As String
- Const_AUDIO_VIDEO As Int
- Const_COMPUTER As Int
- Const_HEALTH As Int
- Const_IMAGING As Int
- Const_MISC As Int
- Const_NETWORKING As Int
- Const_PERIPHERAL As Int
- Const_PHONE As Int
- Const_TOY As Int
- Const_UNCATEGORIZED As Int
- Const_WEARABLE As Int
 
- Functions:- AddBuffer_ArrayByte (B As Byte()) As String
- AddBuffer_BarCode (Code As String) As String
- AddBuffer_BarCode2D (Code As String) As String
- AddBuffer_Bitmap (Bmp As Bitmap, ShiftLeft As Int) As String
- AddBuffer_BitmapAlternativeCoding (Bmp As Bitmap) As String
- AddBuffer_List_Write (list As List) As String
- AddBuffer_List_WriteLine (list As List) As String
- AddBuffer_Tab (ArrayTab As Int()) As String
- AddBuffer_Write (Text As String) As String
- AddBuffer_WriteLine (Text As String) As String
- AddPrintDefineImage As String
- Beep (Times As Byte, SecondsDurate As Byte) As String
 .Printer.Beep(1..9,1..9)
- CenterJustify  As String
 after this command calls SendBufferToPrinter
- Class_Globals As String
- ClearBuffer As String
- Connected As Boolean
- ConnectFromMac (Mac As String) As String
- DefineImage (Image As Bitmap)
- Disconnect As String
- flushAllAndClose
- Initialize (CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- InitializePrinter As String
- IsInitialized  As Boolean
 Verifica se l'oggetto sia stato inizializzato.
- LeftJustify  As String
 after this command calls SendBufferToPrinter
- Preview As Bitmap
- ResetPreViewWidth (NewWidth As Int) As String
- RightJustify  As String
 after this command calls SendBufferToPrinter
- SearchFromAssociatedPrinter As String
- SearchNewPrinter  As String
 select --------------------------------------------
- SendBufferToPrinter
- SetCodePage (Code As Byte) As String
 es. Printer.SetCodePage(06) for umlauts char
- WriteBarCode (Code As String) As String
 send to print immediately, do not preview - Not available in the demo version
- WriteBarCode2D (Code As String) As String
 send to print immediately, do not preview - Not available in the demo version
- WriteBitmap (Bmp As Bitmap) As String
 send to print immediately, do not preview - Not available in the demo version
- WriteByte (Data As Byte()) As String
 send to print immediately, do not preview - Not available in the demo version
- WriteText (Text As String) As String
 send to print immediately, do not preview - Not available in the demo version
 
- Properties:- CodeTable
 es. printer.setCodeTable(Encoding.Code_WPC1252)
 aftet this command calls SendBufferToPrinter
- Spacing
 after setSpacing command calls SendBufferToPrinter
 
- CodeTable
 
- Events:
- ESC_POS
 Code module
 Subs in this code module will be accessible from all modules.- Fields:- BoldOff As String
- BoldOn As String
- cn_PDF417 As String
- cn_QRcode As String
- CutPaper As String
- CutPartialPaper As String
- CutTotalPaper As String
- Demo As Boolean
- DoubleOff As String
- DoubleOn As String
- FontA_Bold As String
- FontA_DoubleHight As String
- FontA_DoubleWide As String
- FontA_DoubleWideHeight As String
- FontA_Normal As String
- FontB_Bold As String
- FontB_DoubleHeight As String
- FontB_DoubleWide As String
- FontB_DoubleWideHeight As String
- FontB_Normal As String
- Horizzontal As String
- InitializePrinter As String
- ItalicFontOff As String
- ItalicFontOn As String
- NoUnderline As String
- QueryErrorCauses As String
- QueryOfflineCauses As String
- QueryPaperStatus As String
- QueryPrinterStatus As String
- Underline1 As String
- Underline2 As String
- Vertical As String
 
- Functions:- feed (lines As Int) As String
- Process_Globals As String
 
 
- Fields:
- Encoding
 Code module
 Subs in this code module will be accessible from all modules.- Fields:- CharSet_Chinese As String
- CharSet_ChineseS As String
- CharSet_DOS_Latin_1 As String
- CharSet_IBM_PC As String
- CharSet_ISO8859 As String
- CharSet_UTF8 As String
- CharSet_Windows1252 As String
- Code_PC437 As Int
- Code_PC850 As Int
- Code_PC857 As Int
- Code_PC858 As Int
- Code_PC860 As Int
- Code_PC863 As Int
- Code_PC865 As Int
- Code_PC866 As Int
- Code_WPC1252 As Int
 
- Functions:- Process_Globals As String
 
 
- Fields:
- LAN_Printer- Events:- Connected (Success As Boolean)
- DataReceived (Data() As Byte)
- Diconnected
- ErrorTrasmission
 
- Fields:- Charset As String
 
- Functions:- AddTab (ArrayTab As Int()) As String
 Add Tab
 eg. PrinterBLE.AddTab(Array As Byte(100,150,121))
- Beep (Times As Byte, SecondsDurate As Byte) As String
 .Printer.Beep(1..9,1..9)
- CenterJustify  As String
 after this command calls SendBufferToPrinter
- Class_Globals As String
- Connect (Host As String, Port As Int) As String
- Disconnect As String
- Initialize (CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- InitializePrinter As String
- IsInitialized  As Boolean
 Verifica se l'oggetto sia stato inizializzato.
- LanConnection_Connected (Successful As Boolean) As String
- LeftJustify  As String
 after this command calls SendBufferToPrinter
- PrintBitmap (bmp As Bitmap) As String
- RightJustify  As String
 after this command calls SendBufferToPrinter
- SetCodePage (Code As Byte) As String
 es. Printer.SetCodePage(06) for umlauts char
- Write (Text As String) As String
 Write (Print) a Text
- Write_ArrayByte (B As Byte()) As String
 Write (Send to Printer) a Array of Byte
 eg. PrinterBLE.Write_ArrayByte(Array As Byte(0x1D,150,23))
 eg. PrinterBLE.Write_ArrayByte("Text".GetBytes("UTF8"))
- WriteBarCode (Code As String) As String
- WriteBarCode2D (Code As String) As String
- WriteLine (Text As String) As String
 Write (Print) a Text + CHLF
- WriteList (list As List) As String
 Write (Print) a List
 
- AddTab (ArrayTab As Int()) As String
- Properties:- CodeTable
 es. printer.setCodeTable(Encoding.Code_WPC1252)
 aftet this command calls SendBufferToPrinter
- Spacing
 after setSpacing command calls SendBufferToPrinter
 
- CodeTable
 
- Events:
- RS_Printer- Fields:- Charset As String
 
- Functions:- AddTab (ArrayTab As Int()) As String
 Add Tab
 eg. PrinterBLE.AddTab(Array As Byte(100,150,121))
- Beep (Times As Byte, SecondsDurate As Byte) As String
 .Printer.Beep(1..9,1..9)
- CenterJustify  As String
 after this command calls SendBufferToPrinter
- Class_Globals As String
- Connect (SerialDevOutput As String) As String
 es. Connect("/dev/ttyAMA1")
 es. Connect("/dev/ttyS0")
- Disconnect As String
- Initialize (CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- InitializePrinter As String
- IsInitialized  As Boolean
 Verifica se l'oggetto sia stato inizializzato.
- LeftJustify  As String
 after this command calls SendBufferToPrinter
- PrintBitmap (bmp As Bitmap) As String
- RightJustify  As String
 after this command calls SendBufferToPrinter
- SetCodePage (Code As Byte) As String
 es. Printer.SetCodePage(06) for umlauts char
- Write (Text As String) As String
 Write (Print) a Text
- Write_ArrayByte (B As Byte()) As String
 Write (Send to Printer) a Array of Byte
 eg. PrinterBLE.Write_ArrayByte(Array As Byte(0x1D,150,23))
 eg. PrinterBLE.Write_ArrayByte("Text".GetBytes("UTF8"))
- WriteBarCode (Code As String) As String
- WriteBarCode2D (Code As String) As String
- WriteLine (Text As String) As String
 Write (Print) a Text + CHLF
- WriteList (list As List) As String
 Write (Print) a List
 
- AddTab (ArrayTab As Int()) As String
- Properties:- CodeTable
 es. printer.setCodeTable(Encoding.Code_WPC1252)
 aftet this command calls SendBufferToPrinter
- Spacing
 after setSpacing command calls SendBufferToPrinter
 
- CodeTable
 
- Fields:
- USB_Printer- Events:- WriteComplete
 
- Fields:- Charset As String
 
- Functions:- AddTab (ArrayTab As Int()) As String
 Add Tab
 eg. PrinterBLE.AddTab(Array As Byte(100,150,121))
- Beep (Times As Byte, SecondsDurate As Byte) As String
 .Printer.Beep(1..9,1..9)
- CenterJustify  As String
 after this command calls SendBufferToPrinter
- Class_Globals As String
- CloseConnection As String
- FindAdbDevice As Boolean
- HasPermission As Boolean
- Initialize (CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- InitializePrinter As String
- IsInitialized  As Boolean
 Verifica se l'oggetto sia stato inizializzato.
- LeftJustify  As String
 after this command calls SendBufferToPrinter
- OpenConnection As String
- PrintBitmap (bmp As Bitmap) As String
- ReadDataResponse As Byte()
- RequestPermission As String
- RightJustify  As String
 after this command calls SendBufferToPrinter
- SetCodePage (Code As Byte) As String
 es. Printer.SetCodePage(06) for umlauts char
- Write (Text As String) As String
 Write (Print) a Text
- Write_ArrayByte (D As Byte()) As String
 Write (Send to Printer) a Array of Byte
 eg. PrinterBLE.Write_ArrayByte(Array As Byte(0x1D,150,23))
 eg. PrinterBLE.Write_ArrayByte("Text".GetBytes("UTF8"))
- WriteBarCode (Code As String) As String
- WriteBarCode2D (Code As String) As String
- WriteLine (Text As String) As String
 Write (Print) a Text + CHLF
- WriteList (list As List) As String
 Write (Print) a List
 
- AddTab (ArrayTab As Int()) As String
- Properties:- CodeTable
 es. printer.setCodeTable(Enoding.Code_WPC1252)
 aftet this command calls SendBufferToPrinter
- Spacing
 after setSpacing command calls SendBufferToPrinter
 
- CodeTable
 
- Events:
log release
- 1.04- Added CutPartialPaper, CutTotalPaper and feed(lines As Int) in esc_pos.
- Added WriteBitmap WriteByte WriteText - send to print immediately
 
- 1.05- Added conversions of color images to black and white for printing
 
- 1.06- fixed LAN classbug
 
- 1.07- Added Beep method
 
- 1.08- Added WriteBarCode, WriteBarCode2D and for Printer_BT also added AddBarCode2d. Other commands to print 2D barcodes compatible with some POS ESCs
 
- 1.09- Disconnect method now flushes before closing
 
- 1.11- Added ReadDataResponse method to USB_printer class
 
Attachments
			
				Last edited: 
			
		
	
							 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		