pos_printer_manager
This plugin allow developer to print to esc printer both wireless or bluetooth (currently support only on android). This has method to list down those printers easily.
Example
- Bluetooth Printer
_scan() async {
print("scan");
setState(() {
_isLoading = true;
_printers = [];
});
var printers = await BluetoothPrinterManager.discover();
print(printers);
setState(() {
_isLoading = false;
_printers = printers;
});
}
_connect(BluetoothPrinter printer) async {
var paperSize = PaperSize.mm80;
var profile = await CapabilityProfile.load();
var manager = BluetoothPrinterManager(printer, paperSize, profile);
await manager.connect();
print(" -==== connected =====- ");
setState(() {
_manager = manager;
printer.connected = true;
});
}
_startPrinter() async {
final content = Demo.getShortReceiptContent();
var bytes = await WebcontentConverter.contentToImage(content: content);
var service = ESCPrinterService(bytes);
var data = await service.getBytes(paperSize: PaperSize.mm58);
if (_manager != null) {
print("isConnected ${_manager.isConnected}");
_manager.writeBytes(data, isDisconnect: false);
}
}
- Network Printer
_scan() async {
setState(() {
_isLoading = true;
_printers = [];
});
var printers = await NetworkPrinterManager.discover();
setState(() {
_isLoading = false;
_printers = printers;
});
}
_connect(NetWorkPrinter printer) async {
var paperSize = PaperSize.mm80;
var profile = await CapabilityProfile.load();
var manager = NetworkPrinterManager(printer, paperSize, profile);
await manager.connect();
setState(() {
_manager = manager;
printer.connected = true;
});
}
_startPrinter() async {
if (_data.isEmpty) {
final content = Demo.getShortReceiptContent();
var bytes = await WebcontentConverter.contentToImage(
content: content,
executablePath: WebViewHelper.executablePath(),
);
var service = ESCPrinterService(bytes);
var data = await service.getBytes();
if (mounted) setState(() => _data = data);
}
if (_manager != null) {
print("isConnected ${_manager.isConnected}");
_manager.writeBytes(_data, isDisconnect: false);
}
}
- USB Printer
_scan() async {
setState(() {
_isLoading = true;
_printers = [];
});
var printers = await USBPrinterManager.discover();
setState(() {
_isLoading = false;
_printers = printers;
});
}
_connect(USBPrinter printer) async {
var paperSize = PaperSize.mm80;
var profile = await CapabilityProfile.load();
var manager = USBPrinterManager(printer, paperSize, profile);
await manager.connect();
setState(() {
_manager = manager;
printer.connected = true;
});
}
_startPrinter() async {
if (_data.isEmpty) {
final content = Demo.getShortReceiptContent();
var bytes = await WebcontentConverter.contentToImage(
content: content,
executablePath: WebViewHelper.executablePath(),
);
var service = ESCPrinterService(bytes);
var data = await service.getBytes();
if (mounted) setState(() => _data = data);
}
if (_manager != null) {
print("isConnected ${_manager.isConnected}");
_manager.writeBytes(_data, isDisconnect: false);
}
}
Supports
Device | Network | Bluetooth | USB |
---|---|---|---|
Android | ✓ | ✓ | ✓ |
IOS | ✓ | ✓ | ✗ |
Macos | ✓ | ✗ | ✗ |
Windows | ✓ | ✗ | ✓ |
Linux | ✓ | ✗ | ✗ |
*** USB: will be the set to the next plan of update
Getting Started
flutter pub add pos_printer_manager
Thank to :
Libraries
- enums/bluetooth_printer_type
- enums/connection_response
- enums/connection_type
- helpers/network_analyzer
- models/bluetooth_printer
- models/network_printer
- models/pos_printer
- models/usb_printer
- pos_printer_manager
- services/bluetooth_printer_manager
- services/bluetooth_service
- services/extension
- services/network_printer_manager
- services/network_service
- services/printer_manager
- services/usb_printer_manager
- services/usb_service