diff --git a/lib/esc_pos_printer.dart b/lib/esc_pos_printer.dart index da58b11..2514771 100644 --- a/lib/esc_pos_printer.dart +++ b/lib/esc_pos_printer.dart @@ -9,3 +9,4 @@ library esc_pos_printer; export './src/enums.dart'; export './src/printer_network_manager.dart'; +export './src/printer_usb_manager.dart'; diff --git a/lib/src/printer_usb_manager.dart b/lib/src/printer_usb_manager.dart new file mode 100644 index 0000000..9da6330 --- /dev/null +++ b/lib/src/printer_usb_manager.dart @@ -0,0 +1,33 @@ +import 'dart:async'; +import 'dart:io'; +import 'package:esc_pos_utils/esc_pos_utils.dart'; +import 'package:escposprinter/escposprinter.dart'; + +import './enums.dart'; + +class PrinterUsbManager { + + Future getDevices() async { + List devices = await Escposprinter.getUSBDeviceList; + return devices; + } + + Future connectDevice(int vendor, int product) async { + await Escposprinter.connectPrinter(vendor, product); + return; + } + + Future writeBytes(List bytes) async { + final Completer completer = Completer(); + await Escposprinter.printBytes(bytes); + completer.complete(PosPrintResult.success); + return completer.future; + } + + Future printTicket(Ticket ticket) { + if (ticket == null || ticket.bytes.isEmpty) { + return Future.value(PosPrintResult.ticketEmpty); + } + return writeBytes(ticket.bytes); + } +} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 00c39ab..5ceb869 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,6 +10,8 @@ dependencies: flutter: sdk: flutter esc_pos_utils: ^0.3.5 + escposprinter: + git: https://github.com/bailabs/esc-pos-printer-flutter # esc_pos_utils: # path: ../esc_pos_utils