ESC POS 蓝牙打印机清除缓冲区

ESC POS bluetooth printer clear Buffer

我正在使用 React Native 构建一个打印票证的应用程序。我用紫江公司的蓝牙打印机5802和5802-LD打印成功。 有一个问题我不知道确切的来源但是当 Java 方法不等待打印机实际打印而只是写命令指令导致我最终发送所有的问题一次打印命令。 有时这会导致打印机缺纸,我想清除缓冲区而不是继续打印。

在这里你可以找到编程手册,在 76mm 的第 20 页末尾有 ESC @ 命令,它应该清除缓冲区并(再次)初始化打印机但它没有(我的打印机是 58mm但也参考了 ESC @ 命令。命令手册有以下说明: http://www.zjiang.com/en/init.php/service/manual

还有几个 android apks 准备在他们的网站上 Android Studio 上构建: http://www.zjiang.com/en/init.php/service/driver 我在他们的示例中发现了相同的命令:

当我需要实际初始化打印时它似乎可以工作,但之后它就不像手册中描述的那样工作了。有没有人对这些蓝牙 ESC/POS 打印机有想法或经验,知道我应该如何进行?

你发帖已经很久了,但这可能会帮助那些苦苦挣扎的人。

我用 ionic 3 框架开发了一个小型移动应用程序。我的主要问题之一是打印服务。

最后的用户需要打印收据。 我所做的是制作一个 uint8Array() 并合并其中的所有小数数据。我也尝试过使用缓冲区。

一次发送所有数据时遇到问题。打印机在同一点停止。我分解了我的变量并计算了它们的字节大小以查看是否有问题但没有出现。

我试图将我的最终变量数据分解为更小的变量并使用 ESC @ 进行初始化,但这也没有用。

在网上搜索了一些"gurus"说可以ESC @整套4kbytes。我还尝试用最多 4kb 的空字符填充剩余数组的其余部分,并尝试初始化但也没有。

最后我做了一个非常"Monkey"的解决方案,我为此感到羞愧。

我通过较小的 uintarrays 进行了 seTimout 循环

setTimeout(() => {
    this.btSerial.write(uint8Array)
      .then(dataz => {
        console.log("WRITE SUCCESS", dataz);
      });
  }, 100 + n *100)

当然成功了。

我认为问题是,字节 android 可以每隔几毫秒用蓝牙本地发送一次,但我不确定。

希望我能帮到一点。

Ps..

不要尝试开发在跨平台框架中使用本机内容的移动应用程序。您将最终总是尝试学习和编写程序包以进行本地通信..