如何验证Zebra打印机是否使用ZPL和C#成功打印(或能够检测到错误)?

hly*_*tes 5 .net c# zpl-ii zpl zebra-printers

问题

是否有一个简单的ZPL代码或方法从Zebra打印机返回错误消息,以确定标签是否未成功打印或是否存在某种错误?

进展

这是我为将打印机作业发送到zebra打印机而构建的一个很好的功能:

public static void SendToPrinter(string zplString, string ipAddress = "127.0.0.1", int port = 1337)
        {
            // Open connection
            TcpClient tcpClient = new TcpClient();
            tcpClient.Connect(ipAddress, port);

            // Write ZPL String to connection
            using (System.IO.StreamWriter writer = new System.IO.StreamWriter(tcpClient.GetStream()))
            {
                writer.Write(zplString);
                writer.Flush();
                writer.Close();
            }
            // Close Connection
            tcpClient.Close();
        }
Run Code Online (Sandbox Code Playgroud)

zplString中有很多神奇的东西,但基本上它包含了我们都喜欢的ZPL代码.我的方法中的问题是,这似乎是打印机的一种单程票.上面有很多工作,我希望我们能以某种方式修改它以听取响应,如果我以某种方式有适当的ZPL代码来听取响应?

我根本没有看到任何文献或论坛讨论如何从斑马打印机收到回复并确定它是否成功?

问题

理想情况下,如果打印机以某种方式成功或失败,我想要一种方法来理解使用包含在C#和.NET中的ZPL的打印机.否则,我可能必须手动查询用户"是否打印?".这不是理想的,但是我的手册中还没有找到任何表明使用ZPL检测打印作业有错误的简单方法?

感谢您的耐心,帮助以及阅读此问题.

Elt*_*ers 6

使用~HS或主机状态命令,请参阅ZPL手册的第227页.

Zebra提供了一个C#Socket示例.

打印机将为您提供以下状态:

•MEDIA OUT

•RIBBON OUT

•HEAD OPEN

•REWINDER FULL

•头部温度过高

  • 如果你有一个剥离板,你也可以从~HS得到“LABEL WAITING” (2认同)
  • @SilasReinagel Zebra 希望人们使用他们的 SDK,因此链接现在转到 GitHub。但是,如果您更喜欢他们曾经拥有的简单套接字示例,他们在这里有摘要:https://github.com/Zebra/Zebra-Printer-Samples/issues/1 (2认同)