我在多台计算机上使用的服务本质上是一个套接字和在端口上侦听消息的TcpListener。此消息是ZPL代码的字节数组。然后,该服务将此数组发送到USB连接的Zebra GK420d打印机,然后打印它。字节数组是从另一个应用程序发送的,用户可以在该应用程序中为不同的产品选择不同的标签布局。其他计算机没有管理员权限,但我不认为这是原因。
我桌上的电脑和另一台电脑上都有打印机,但其他电脑(大约10台以上(没有。所有电脑都有一台连接的USB Zebra GK420d打印机。
我遇到的问题是打印机会闪烁一次绿色,但不会打印。我知道服务运行良好,因为当我查看CMD窗口时,我会看到ZPL消息和它试图发送到的打印机。这表明服务运行,打印机收到消息,因此会闪烁。
我试过各种驱动程序,更新驱动程序,不同的USB端口,更新计算机上的.Net,删除打印机并重新安装等等,但似乎没有什么能解决这个问题。他们打印测试页面很好,所以我不确定问题出在哪里。
现在,所有计算机/打印机都具有相同的打印机属性/首选项/驱动程序和Windows版本。然而,在过去的6年里,这些打印机都是在不同的时间购买的。
我强烈建议使用基于文本的驱动程序。如果你发送ZPL,这是最干净的选择。如果以前不起作用,请尝试一个更简单的标签/ZPL blob;你发送的ZPL可能有问题。
否则,我发现:https://code-examples.net/en/q/43c80a
- 右键单击打印机并选择"属性">
- 在"常规"选项卡上,单击"打印首选项…"按钮
- 在"高级设置"选项卡上,单击"其他"按钮
- 确保在标有"启用通过模式"的框中有一个复选框
- 请确保"开始序列:"为"${">
- 请确保"结束序列:"为"}$">
- 单击"关闭"按钮
- 单击"确定"按钮
- 单击"确定"按钮
在代码中,在ZPL的开头添加"${",在末尾添加"}$"。这是ZDesigner的Windows驱动程序。
事实证明,这是由于ZPL代码在通过流发送的每个ZPL文件的末尾没有新行。