esc_pos_bluetooth
该库允许使用蓝牙打印机打印收据。对于WiFi/以太网打印机,请使用 esc_pos_printer 库。
待办事项(欢迎提交PR!)
- 将字节数据分割成块:问题
- 使用
GS ( k命令打印二维码(已支持从图像打印二维码) - 使用
GS ( k命令打印 PDF-417 条形码 - 使用
ESC 3 <n>命令设置行间距
如何提供帮助
- 测试您的打印机并将其添加到表中:Wifi/网络打印机 或 蓝牙打印机
- 测试并报告错误
- 分享您对可改进之处的想法(代码优化、新功能…)
- 欢迎提交PR!
已测试的打印机
以下是 与此库一起测试过的一些打印机。请添加您测试过的型号,以维护和改进此库,并帮助他人选择正确的打印机。
生成小票
带样式的简单小票
Ticket testTicket() {
final Ticket ticket = Ticket(PaperSize.mm80);
ticket.text(
'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');
ticket.text('Special 1: àÀ èÈ éÉ ûÛ üÜ çÇ ôÔ',
styles: PosStyles(codeTable: PosCodeTable.westEur));
ticket.text('Special 2: blåbærgrød',
styles: PosStyles(codeTable: PosCodeTable.westEur));
ticket.text('Bold text', styles: PosStyles(bold: true));
ticket.text('Reverse text', styles: PosStyles(reverse: true));
ticket.text('Underlined text',
styles: PosStyles(underline: true), linesAfter: 1);
ticket.text('Align left', styles: PosStyles(align: PosAlign.left));
ticket.text('Align center', styles: PosStyles(align: PosAlign.center));
ticket.text('Align right',
styles: PosStyles(align: PosAlign.right), linesAfter: 1);
ticket.text('Text size 200%',
styles: PosStyles(
height: PosTextSize.size2,
width: PosTextSize.size2,
));
ticket.feed(2);
ticket.cut();
return ticket;
}
您可以在此处找到更多示例:esc_pos_utils。
打印小票
PrinterBluetoothManager printerManager = PrinterBluetoothManager();
printerManager.scanResults.listen((printers) async {
// store found printers
});
printerManager.startScan(Duration(seconds: 4));
// ...
printerManager.selectPrinter(printer);
final PosPrintResult res = await printerManager.printTicket(testTicket());
print('Print result: ${res.msg}');
有关完整示例,请查看演示项目 example/blue。
故障排除
- 如果您的打印机仅打印图像的5%-10%然后停止,或者在同一张小票上无法打印多于1张图像,或者无法打印长小票,请尝试调整
PrinterBluetoothManager.printTicket的queueSleepTimeMs(尝试50或100毫秒):printerManager.printTicket(await demoReceipt(paper), queueSleepTimeMs: 50);

