簡體   English   中英

如何在 Flutter 上實現打印隊列?

[英]How to Implement a Print Queue on Flutter?

我正在使用 esc_pos_bluetooth 0.2.8 庫並通過藍牙連接打印機當我一次發送一個訂單時可以,但是當有同時訂單時,它只打印第一個並忽略其他訂單。 我嘗試實現打印隊列,但沒有成功。

List printQueue = [];

insertPrintQueue(Schema item) {
    printQueue.add(item);
    printTicket(printQueue[0]);
  }

  verifyPrintQueue() {
    if (printQueue.length > 0) {
      printTicket(printQueue[0]);
    }
  }

  printTicket(Schema item) async {
      if (printerDevices != null) {
        printerManager.selectPrinter(printerDevices[0]);
        await printerManager
            .printTicket(await ticket.templateTicket(item))
            .then((value) => {
                  printQueue.removeAt(0),
                  if (printQueue.length > 0)
                    {
                      printTicket(printQueue[0])
                    }
                });
      } else {
      print("None Printer Found");
  }

我認為這是因為我試圖在打印機忙碌時打印,有辦法檢查打印機的狀態嗎? 並在打印機不打印時訂購打印

insertPrintQueue(Schema item) {
  printQueue.add(item);
  printTicket(printQueue[0]); // Here
}

您總是試圖打印第一項。 所以它按預期工作。 你可以這樣做:

insertPrintQueue(Schema item) {
  printQueue.add(item);
  //printTicket(printQueue[0]);

  for (var ticket in printQueue) {
      printTicket(ticket);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM