zplCloud Blog
GK420 + Raspberry Pi:经典 USB 打印机变身云打印机
购买新机时选 Link-OS,能用的设备就继续用。两者最终都接入同一个平台。
先说诚实的建议
如果你今天要买标签打印机,买带 Link-OS 的 Zebra——ZD421、ZD621 或更大。Cloud Connect / Weblink 内置,有 Wi-Fi、更快的打印头、300 dpi 和 RFID 变体,以及远程固件和设置管理。把它连到 zplCloud 是一行命令,而且多年可维护。
大多数车间和小仓库问的不是这个。他们的问题是:
"打包台上有一台 GK420d。从 2014 年起它每天都打印发货标签,从没坏过,但只有 USB。要把它报废才能从云端打印吗?"
不。
这些打印机能与不能做什么
GK420d/GK420t、GC420、LP2844 和较老的 TLP 系列机械上非常出色且简单:203 dpi、热敏直印或热转印、EPL2 和 ZPL II。数百万台仍在服役。
它们只缺一样东西:连接性。没有 Link-OS,因此没有 Weblink 和 Cloud Connect。许多只有 USB。从云端的角度看,它们不存在。
它们仍拥有替换成本高的一切:能用的打印头、胶辊和介质传感器——以及你的团队已经熟悉的设备。
零件
| 零件 | 成本 | 备注 |
|---|---|---|
| Raspberry Pi Zero 2 W、3、4 或 5 | ~20–80 € | 任何 64 位 Raspberry Pi OS;Zero 2 W 可带一两台打印机 |
| 电源、microSD、USB 线 | ~15 € | 打印机现有线缆可用(Pi Zero:micro-USB OTG 适配器) |
| zplCloud CLI agent | 包含 | Starter 含 1 个远程打印机 agent,Pro 5 个 |
| 总计 | 低于 100 € | 对比新 Link-OS 桌面打印机动辄数百 |
agent 功耗为个位瓦特,以 systemd 服务运行,断电后自行重连,不需要入站端口、VPN 或防火墙变更——它打开一条到 api.zplcloud.com 的出站连接。
设置,约 20 分钟
1. 准备 Pi
用 Raspberry Pi Imager 烧录 Raspberry Pi OS Lite(64 位)。写卡前在 imager 设置中启用 SSH 和 Wi-Fi,启动、登录。
2. 插入打印机
lsusb
# Bus 001 Device 004: ID 0a5f:0084 Zebra Technologies ...
厂商 ID 0a5f 是 Zebra。驱动故事到此为止——agent 通过 USB 打印机类(libusb)与打印机通信。没有 CUPS、没有假脱机、没有厂商驱动。
如果什么都没出现:用数据线而不是仅充电线;如果打印机功耗超过端口供给,给 Pi Zero 一个有源 hub。
3. 安装 CLI
curl -fsSL https://zplcloud.com/install-cli.sh | sh
zplcloud --version
zplcloud usb list
安装器选择正确构建:64 位 Pi OS 用 linux-arm64,32 位用 linux-arm。usb list 应显示 Zebra 打印机类设备。
4. 从 Pi 打印测试标签
zplcloud send --usb --zpl "^XA^FO50,50^A0N,32,32^FDHello from the Pi^FS^XZ"
如果标签出来,硬件侧完成。
如果没反应,检查语言模式。GK420 可能运行 EPL2,那样 ZPL 会作为文本到达并被忽略。配置标签会告诉你激活的是哪种模式。USB 访问还需要权限——测试用 sudo 就行;服务的话,用 udev 规则把设备交给某个组是干净的做法。
5. 以服务运行 agent
在平台中创建 API 密钥(API 选项卡),然后:
sudo zplcloud proxy --agent "Packing table Pi" --service-install --api-key sk_zplcloud_xxxx
systemctl status zplcloud-agent
journalctl -u zplcloud-agent -f
这会安装带 Restart=always 的 zplcloud-agent.service。Pi 现在开机即连,并把每个作业转发到 USB 打印机。
Docker 也行:把 /dev/bus/usb 映射进容器,设置 ZPLCLOUD_API_KEY 和 ZPLCLOUD_AGENT(见 docker-compose.agent.yml)。一台 Pi 可同时服务多台 USB 打印机和 TCP 9100 上的 LAN 打印机。
6. 从任何地方打印
agent 带着它的 USB 打印机出现在 Remote Printers 中,从那里它就是普通 zplCloud 打印机:设计器、REST API、来自 CSV/JSON 的批处理作业、Kafka 或 SQL 数据源、面向打包团队的 Print Views、带重试的队列、成功或失败 webhook。
关于老打印机要知道的三件事
字体。 GK420 有几十 MB flash。ZPLCloud 11 MB Unicode 字体放不下,7 MB slim 变体也很紧。推任何东西前先检查:
zplcloud send --usb --zpl '! U1 getvar "memory.flash_free"'
拉丁带重音文本用 Liberation Sans(0.4 MB),或让 zplCloud 把文本渲染为图形——设计器对 image 模式文本字段自动这样做。GK420 上的 CJK,image 模式是答案。从 SVG 构建的图标字体只有几 KB,轻松容纳。
分辨率和速度。 203 dpi,约 4 ips。发货、产品和货架标签没问题;小型电子上的密集 2D 码不行。
无 RFID、无 300 dpi、打印机内无 Wi-Fi。 如果需要这些,就是买新机的时刻——切换成本低,因为设计、binding、Print View 和 API 调用完全不变。只有打印机条目变。
为什么留着它是站得住脚的答案
一台能用的打印机进垃圾箱是最差的结果:机械和电子的内含能耗,加上替换机的运费。还能好好打印的 GK420 每隔几年需要换打印头——是备件,不是新设备。Pi 增加的功耗大约是一颗 LED 灯泡。
买的时候买 Link-OS。能用就一直用。 zplCloud 对两者一视同仁。