0

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

! U1 getvar "appl.date"

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

谢谢

4

2 回答 2

0

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

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

代码工作正常,唯一的问题是打印机需要一段时间才能返回数据,但 ReadLine 会立即执行。这将返回一个空字符串。如果您等待几秒钟并再次阅读,您将获得实际结果。

于 2013-02-20T17:02:44.320 回答
0

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

于 2013-02-20T17:24:02.783 回答