Flutter 蓝牙打印到 Zebra

Flutter Bluetooth printing to Zebra

我需要在 zebra zq520 蓝牙热敏打印机上添加打印功能。 我设法使用 flutter_blue 插件做到了这一点,但我对实现不满意。 我讨厌将字符串分成更小的块以便通过蓝牙(并等待!!!!!)。 我想知道是否有更好的方法,比如我们在 java 的(好?)过去使用 android.bluetooth.BluetoothAdapter class[=10 的 android 的方法=]

谢谢。

我最终创建了自己的插件。

source code

编辑:2021/11/29 整合评论部分的一些评论

  1. 此代码不限于 zpl。理论上它可以支持所有发送明文到蓝牙串口的打印机语言

  2. 只限Android

  3. 要使此源代码按原样工作:

  • 您必须将名称以“zebra”开头的蓝牙打印机配对
  • 您必须将 zpl 命令作为字符串发送。
  1. 检查您的 zpl 命令是否有效的最简单方法是使用非常有用的 labelary viewer。测试标签布局(字体大小、图像、条形码等)的最简单方法是使用上述免费服务。事实上,您所要做的就是在 labelary 中创建您需要的布局,并将整个字符串从第一个 ^XA 复制到最后一个 ^XZ 到 FlutterCblue.printToBT。例如,如果您发送此
printToBT("^XA

^FX Top section with logo, name and address.
^CF0,60
^FO50,50^GB100,100,100^FS
^FO75,75^FR^GB100,100,100^FS
^FO93,93^GB40,40,40^FS
^FO220,50^FDIntershipping, Inc.^FS
^CF0,30
^FO220,115^FD1000 Shipping Lane^FS
^FO220,155^FDShelbyville TN 38102^FS
^FO220,195^FDUnited States (USA)^FS
^FO50,250^GB700,3,3^FS

^FX Second section with recipient address and permit information.
^CFA,30
^FO50,300^FDJohn Doe^FS
^FO50,340^FD100 Main Street^FS
^FO50,380^FDSpringfield TN 39021^FS
^FO50,420^FDUnited States (USA)^FS
^CFA,15
^FO600,300^GB150,150,3^FS
^FO638,340^FDPermit^FS
^FO638,390^FD123456^FS
^FO50,500^GB700,3,3^FS

^FX Third section with bar code.
^BY5,2,270
^FO100,550^BC^FD12345678^FS

^FX Fourth section (the two boxes on the bottom).
^FO50,900^GB700,250,3^FS
^FO400,900^GB3,250,3^FS
^CF0,40
^FO100,960^FDCtr. X34B-1^FS
^FO100,1010^FDREF1 F00B47^FS
^FO100,1060^FDREF2 BL4H8^FS
^CF0,190
^FO470,955^FDCA^FS

^XZ")

你会得到这个:

还有一件事:请记住,如果您想打印特殊语言字符(我需要打印希腊语),您必须找到打印机中安装的正确字体。例如:为了打印希腊字符,我必须整合这个

^CWN,E:TT0003M_.FNT

就在第一个 ^XA 之后。然后我使用 N 字体来打印希腊语。如果你了解基础知识,它非常灵活

希望对您有所帮助