斑马打印机-C#、CPCL和getvar

本文关键字:CPCL getvar -C# 打印机 | 更新日期: 2023-09-27 18:00:14

我正在编写一个使用CPCL打印到Zebra蓝牙打印机的类。CPCL有一个getvar命令,您可以将该命令发送到打印机以获取打印机设置。例如:

! U1 getvar "appl.date"

此命令将返回打印机的当前日期。唯一的问题是我不知道如何从这个命令中得到结果。我使用C#和CPCL打印没有问题,因为我可以将命令转换为字节数组,并使用NetworkStream将其发送到打印机。但我不知道如何从应该返回结果的命令中实际返回结果。我已经确认,该命令实际上使用打印机附带的Zebra打印机通信器返回数据。

感谢

斑马打印机-C#、CPCL和getvar

两件事。。。确保在最后一个"之后发送'r'n。不确定WriteLine是否能为您做到这一点,但SGD最终需要它。此外,您是正确的,您需要等待打印机返回值后再读取。如果您读取速度过快,而打印机尚未响应,则将没有可读取的内容。您可以做的是查看TcpClient Available属性,看看在实际执行读取之前是否有可用的字节。您可以循环并快速等待,直到有字节可供读取,然后您可以进行读取并确保有字节可读取

我在这里找到了一个实际的代码示例:

https://km.zebra.com/kb/index?page=content&id=SA140&actp=列出

代码运行良好,唯一的问题是打印机需要一段时间才能返回数据,但ReadLine会立即执行。这将返回一个空字符串。如果你等待几秒钟,然后再阅读,你就会得到实际的结果。