uniapp连接斑马打印机ZD421 蓝牙打印:从踩坑到出纸

用 uni-app 给斑马(Zebra)ZD421 打一张 100mm × 150mm 的面单,

环境:uni-app Vue2、App 真机(安卓小米13)、斑马 ZD421
本项目因为之前已经走通汉印打印机的蓝牙通信,时长会默认走CPCL。
但是斑马必须走ZPL,终于走通了

  • 每次切 onceLength 字节
  • 每包间隔 300ms
  • 失败最多重试 15 次(整包重发)
  • 用 uni.writeBLECharacteristicValue
  • 内容必须转成二进制

  • 中文必须 GBK

  • 指令也要转二进制

  • BLE 一次接收有限,建议 20 字节递归分包,

  • 面单 ZPL 样例

    下面是斑马文档里那张经典面单,加上纸张尺寸后可以直接发:

    ```zpl
    ^XA
    ^PW800
    ^LL1200
    ^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
    ^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
    ^BY5,2,270
    ^FO100,550^BC^FD12345678^FS
    ^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
    ```

    业务里只要把 `^FD` 后面的文字、条码换成订单数据。坐标原点在标签左上,单位是点。

  • 多少无益,需要源代码的找我,平时不在线,打赏做个敲门砖