You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用斑马专有软件,通过脚本/终端向USB连接的GK420t发送原始ZPL

向USB连接的斑马GK420t发送原始ZPL指令的方法

Python 实现

先通过lsusb(Linux/macOS)或设备管理器(Windows)确认斑马打印机的VID和PID,一般GK420t的VID是0x0a5f,PID是0x020c。

  1. 安装依赖库:
pip install pyusb
  1. 编写代码发送ZPL:
import usb.core
import usb.util

# 替换为你的打印机VID和PID
VID = 0x0a5f
PID = 0x020c

# 查找并初始化设备
dev = usb.core.find(idVendor=VID, idProduct=PID)
if not dev:
    raise ValueError("没找到目标打印机")

# 解绑内核驱动(如果需要)
if dev.is_kernel_driver_active(0):
    dev.detach_kernel_driver(0)
usb.util.claim_interface(dev, 0)

# 测试用ZPL指令,按需修改
zpl_cmd = """^XA
^FO50,50^A0N,50,50^FD测试标签^FS
^XZ
"""

# 发送指令,端点地址一般为0x02,可通过USB设备工具确认
dev.write(0x02, zpl_cmd.encode('utf-8'))

# 释放资源
usb.util.release_interface(dev, 0)
if not dev.is_kernel_driver_active(0):
    dev.attach_kernel_driver(0)

注意:Windows下需安装libusb-win32驱动;Linux下要给用户USB访问权限,可添加udev规则。

Linux/macOS Shell 脚本实现

  1. 用lsusb找到打印机的总线和设备号,比如输出为Bus 001 Device 005: ID 0a5f:020c Zebra Technologies,则总线是001,设备是005。
  2. 直接通过命令发送ZPL:
# 替换为你的总线和设备号
BUS="001"
DEV="005"
ZPL_CMD='^XA^FO50,50^A0N,50,50^FDShell测试标签^FS^XZ'

# 发送指令,需要sudo权限
echo -n "$ZPL_CMD" | sudo tee /dev/bus/usb/$BUS/$DEV > /dev/null

注意:频繁使用可配置udev规则,避免每次输入sudo。

Windows 终端实现

方法1:用自带print命令

先在设备管理器里确认打印机的端口名(比如USB001):

:: 把ZPL指令写入临时文件
echo ^XA^FO50,50^A0N,50,50^FDWindows CMD测试^FS^XZ > zpl_test.txt
:: 发送到USB端口
print /D:USB001 zpl_test.txt

方法2:PowerShell直接发送

$portName = "USB001"
$zplContent = @"
^XA
^FO50,50^A0N,50,50^FDPowerShell测试标签^FS
^XZ
"@

# 初始化端口(波特率默认9600,按需调整)
$printerPort = New-Object System.IO.Ports.SerialPort($portName, 9600, "None", 8, "One")
$printerPort.Open()
$printerPort.Write($zplContent)
$printerPort.Close()

注意:部分USB打印机在Windows中会被识别为虚拟串口,若USB001不行,可尝试设备管理器中的串口名称(比如COM3)。

内容的提问来源于stack exchange,提问作者Jokubas11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:18:18