esc_pos_bluetooth

Pub Version

该库允许使用蓝牙打印机打印收据。对于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.printTicketqueueSleepTimeMs(尝试50或100毫秒):printerManager.printTicket(await demoReceipt(paper), queueSleepTimeMs: 50);

测试打印

test receipt

test receipt

GitHub

查看 Github