Pro tisk z webové aplikace můžete použít aplikaci:
V této aplikaci nalinkujte svou připojenou bluetooth tiskárnu. Můžete použít třeba cenově výhodnou Birch BMC02
Po nalinkování již můžete tisknout přímo ze svých stránek. Pro odkaz tisku použijte klasický a tag:
<a href="com.fidelier.printfromweb://$biguhw$Hello World$intro$$small$This is small letter$intro$->$intro$->$intro$->$intro$$intro$$intro$$intro$$cut$$intro$">Print Test from WEB </a>
Test: Print Test from WEB
ESC/POS URL-encoding
An ESC/POS printers get a stream of text embedding some „escape“ formatting code, following the ESC/POS „standard“ original defined by Epson. The problem is that ESC codes contains are also non printable chars. To URL-encode ESC/POS commands, Luis Blatta propose two solutions:
- DOLLAR_SIGN_ENCODING
ESC_POS_DATA is a string containing ESC/POS commands represented by $symbol$ specified by the following table:
$ Escape code Description $small$ small size $smallh$ small size with double hight $smallw$ small size with double width $smallhw$ small size with double hight and width $smallu$ small size underline $smalluh$ small size with double hight underline $smalluw$ small size with double width underline $smalluhw$ small size with double hight and width underline $big$ big size $bigh$ big size with double hight $bigw$ big size with double width $bighw$ big size with double hight and width $big$ big size, underline $bigh$ big size with double hight, underline $bigw$ big size with double width, underline $bighw$ big size with double hight and width, underline $cut$ cut the paper $drawer$ open the first drawer - DOT_ENCODING
This is a more versatile, complete solution for URL-encode any ESC/POS command: developer must represent each ‚non printable‘ char with a special encoding, enclosing the decimal representation of the code with special sign
(%C2%B7 URL-encoded), so by example- the char with decimal value 27 become
27
,
- and ESC/POS escape sequence to cut the paper ‚ESC m‘, is equal to 1B6D in hexadecimal and is equal to 27 109 in decimal, become:
27
109
- at least the complete string to cut the paper is:
27
109
13
10
- the char with decimal value 27 become
Print from your Android App (interactive user action)
Create your ESC data using the helpers Create an Android Intent using Add your ESC data as a “Data” extra Start the intent. You can be printing in minutes with just a couple lines of code. It’s as simple as creating your intent, adding your ESC formatted string and start the (service) intent.
Example:
String dataToPrint="$big$This is a printer test$intro$posprinterdriver.com$intro$$intro$$cut$$intro$";
Intent intentPrint = new Intent();
intentPrint.setAction(Intent.ACTION_SEND);
intentPrint.putExtra(Intent.EXTRA_TEXT, dataToPrint);
intentPrint.setType("text/plain");
this.startActivity(intentPrint);
Examples
Let consider an interesting example: you want to print this receipt of an ecommerce order:
ORDINE 20
del 10-10-2015 alle ore 10:00
pizzeria d'albertis (cod. 663)
1 pizze
01 x capresina 6.50
2 bibite
01 x coca cola 1.50
01 x mezza gassata 0.50
-------------------------------------
confezionamento per asporto 0.50
fattorino a domicilio 1.00
totale euro 10.00
-------------------------------------
consegna a domicilio
10-10-2015 alle ore 13:30
Caterina de Michel
salita san giorgio 6/9
16100 genova
tel. 1234567901
using the mode A encoding, to print the above text with a final paper cut also:
$ curl -X POST http://www.posprinterdriver.com/api/v1/api/sendDataToPrinter? \
linkcode=12345&data=\
ORDINE 20\
del 10-10-2015 alle ore 10:00\
pizzeria d'albertis (cod. 663)\
\
1 pizze\
01 x capresina 6.50\
\
2 bibite\
01 x coca cola 1.50\
01 x mezza gassata 0.50\
-------------------------------------\
confezionamento per asporto 0.50\
fattorino a domicilio 1.00\
totale euro 10.00\
-------------------------------------\
\
consegna a domicilio\
10-10-2015 alle ore 13:30\
\
Caterina de Michel\
salita san giorgio 6/9\
16100 genova\
tel. 1234567901\
\
\$intro$