Library use for connecting to a printer
import 'package:esc_pos_printer/esc_pos_printer.dart';
Printer.connect('192.168.0.123', port: 9100).then((printer) {
printer.println('Regular: aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ');
printer.println('Special 1: àÀ èÈ éÉ ûÛ üÜ çÇ ôÔ',
styles: PosStyles(codeTable: PosCodeTable.westEur));
printer.println('Special 2: blåbærgrød',
styles: PosStyles(codeTable: PosCodeTable.westEur));
printer.println('Bold text', styles: PosStyles(bold: true));
printer.println('Reverse text', styles: PosStyles(reverse: true));
printer.println('Underlined text',
styles: PosStyles(underline: true), linesAfter: 1);
printer.println('Align left', styles: PosStyles(align: PosTextAlign.left));
printer.println('Align center',
styles: PosStyles(align: PosTextAlign.center));
printer.println('Align right',
styles: PosStyles(align: PosTextAlign.right), linesAfter: 1);
printer.println('Text size 200%',
styles: PosStyles(
height: PosTextSize.size2,
width: PosTextSize.size2,
));
printer.cut();
printer.disconnect();
});
To open cashier
https://www.beaglehardware.com/howtoprogramcashdrawer.html
- Connect cashier to the printer via a phone cable
- Cable datasheet

- Controlling the cash drawer

- ESC POS Control
The Epson ESC POS Drawer Kick cash drawer command enables the control of either 1 or 2 Cash drawers
ESC p m t1 t2
Where
ESC p is the drawer kick command
m is the DK connector pin to output control signals ( 0 for Pin2/drawer1 or 1 for Pin5/drawer2 )
t1 is the ON time of the drawer kick signal. The ON time is 2 mS x t1 value.
t2 is the OFF time of the drawer kick signal ( time before the next ON signal can be received ) The OFF time is 2 mS x t2 value.
- Programming Examples
ESC p m t1 t2
- Decimal Example

MSComm1.Output = ESC + p + 0 + 25 + 250
MSComm1.Output = Chr(27) + Chr(112) + Chr(0) + Chr(25) + Chr(250)
Kick drawer 1 with the following 50mS on / 500mS off pulse
- Connect to the printer via a library (esc_pos_printer) and send raw command (remember done hard lock cashier, unless it can not be opened)
// nhancv: Flutter kick drawer 1 with the following 50mS on / 500mS off pulse
printer.sendRaw([27, 112, 0, 25, 250]);
Extend
The esc_pos_printer
above has to limit at print QR code and open cash drawer, but thank to andrey-ushakov
of course. I have made folk and add 2 extra functions mention above.
Install
esc_pos_printer:
git:
url: git://github.com/nhancv/esc_pos_printer.git
Use
Printer.connect('192.168.0.123', port: 9100).then((printer) async {
await printer.printQRCode('nhancv.com');
printer.println('');
printer.cut();
printer.openCashDrawer();
printer.disconnect();
});
HI Does this one support Window application? and how about the printer is connect via USB ?
Thanks
JJ
The printer support via ip address, just connect it to LAN. Flutter support windows also, but it’s not final yet
Is there any package for the web to open cash drawer.