如何在将数据包发送到打印机之前对其进行修改?

How to modify a packet before it is sent to a printer?

我使用旧的(3 年)标签软件自动将生产线上的条码打印到 Zebra 打印机。我刚刚意识到并与他们的 IT 人员确认,无论出于何种原因,当触发打印作业时,该软件都会向打印机发送 ^PR6,将打印速度设置为 6(并覆盖我设置的 2)。我们更改的打印机设置或属性的任何工具都无法覆盖它。 IT 部门还告诉我该产品已停产,可能没有人会为其打补丁。

看来我唯一的解决办法是在数据包从服务器发送到打印机之前以某种方式捕获它,并从数据包的开头删除这个 ^PR6,以便打印作业使用打印机设置。我有办法做到这一点吗?

这一切都在 Windows Server 2012 系统上。

较新的打印机具有命令覆盖命令。将以下命令发送到要忽略 ^PR6 的打印机:

! U1 setvar "device.command_override.add" "^PR"

更多信息可以在 ZPL 手册中找到: https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf