Flutter 蓝牙打印到 Zebra

Joh*_*ton 2 serial-port bluetooth zpl zebra-printers flutter

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

谢谢。

Joh*_*ton 6

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

源代码

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

  1. 该代码不限于zpl。理论上它可以支持将明文发送到蓝牙串行的每种打印机语言

  2. 它仅适用于 Android

  3. 为了使该源代码按原样工作:

  • 您必须配对名称以“zebra”开头的蓝牙打印机
  • 您必须以字符串形式发送 zpl 命令。
  1. 检查 zpl 命令是否有效的最简单方法是使用超级有用的 标签查看器。测试标签布局(字体大小、图像、条形码等)的最简单方法是使用上述免费服务。事实上,您所要做的就是在 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")
Run Code Online (Sandbox Code Playgroud)

你会得到这个:

你会得到这个:

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

^CWN,E:TT0003M_.FNT

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

希望能帮助到你