我正在开发一个项目,我们需要使用Zebra打印机来处理条形码标签.我们正在使用C#,我们在打印方面做得很好,将原始ZPL字符串发送到打印机(使用winspool.drv).
但是,我们还需要从打印机读取,并没有运气.
我们需要从打印机获取状态,这是ZPL命令"~HS"的输出,因此我们可以判断内存中有多少标签等待打印.winspool.drv中的EnumJobs()只在Windows假脱机上有作业,一旦它们被发送到打印机,它们就会从该列表中消失.但这并不意味着标签已被打印,因为打印机有一个剥离传感器,一次只打印一个标签,我们显然对将批量标签发送到打印机感兴趣.
我尝试了类似的东西(使用winspool.drv调用):
OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero);
WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); // send the string "~HS"
ReadPrinter(hPrinter, data, buff, out pcRead);
Run Code Online (Sandbox Code Playgroud)
但我在ReadPrinter调用中什么也得不到.我甚至不知道这是否是正确的方法.
之前有人解决了这个问题吗?
谢谢.