【发布时间】:2020-03-05 09:30:49
【问题描述】:
我在 C# Windows 服务中生成 ZPL 标签。该服务在结构上很简单...它使用 System.IO.FileSystemWatcher 来检测我们的 ERP 何时创建新文件,然后解析文件,从 SQL 中获取有关该作业的大量数据并将其格式化为经过验证的ZPL。
然后它使用 StreamWriter 和 TcpClient 类创建到 Zebra 标签打印机的连接并将 ZPL 发送到端口 9100。这是我们过去使用的技术,没有问题。
我们只使用 Zebra GK420D 打印机。
这是奇怪的一点。有时,当作业发送到打印机时,LED 只是闪烁 - 没有打印标签。如果您查看该打印机的 Web 界面中的配置页面,它会报告它正忙于处理作业。作业在作业日志中显示得非常好,但打印机被卡住了。您无法打印配置标签(就像您通常按住提要按钮几秒钟一样)。您可以重新启动打印机,重新提交作业,它会打印...但这不能保证。通常它会再次闪烁。您可以将相同的 ZPL 发送到另一台打印机,它会打印得很好。
正在生成的 ZPL 的长度约为 4000 - 4500 字节。我们已经使用在线工具验证了 ZPL,以重现我们想要打印的标签,它们看起来都很好。
以前有人见过这样的事情吗?这让我们感到莫名其妙......
【问题讨论】:
-
您使用的是 Zebra 提供的 ZPL sdk 吗?通过工具(无 API)发送数据是否能够始终如一地完成工作?
-
您是只发送一个标签格式(包含在
^XA...^XZ中)还是每个标签发送多个^XA...^XZ对?我刚刚在一台新购买的打印机上遇到了类似的问题,我们的代码首先发送一个空格式,将打印机的配置重置为已知的良好状态,然后发送实际格式。新打印机将闪烁其数据繁忙 LED,并且不会打印任何内容。原来,这是一个时间问题,我们需要在第一种格式和第二种格式之间暂停半秒。 -
我没有使用 ZPL SDK。我正在用 C# 创建 ZPL 并将其写入端口。正如我所提到的,这是一种过去运行良好的技术。我每次都发送单个标签。即使需要多个标签,我也会将它们发送到 ^XZ ^XZ 单标签作业中。我在所有地方都添加了暂停,看看是否是时间问题,但还没有运气......
标签: c# windows service zebra-printers zpl