pmo*_*ira 12 printing label barcode zpl-ii zebra-printers
我正在开发一个项目,我们需要使用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调用中什么也得不到.我甚至不知道这是否是正确的方法.
之前有人解决了这个问题吗?
谢谢.
大约 15 年前,我编写了通过 Zebra 打印机进行打印的软件。
当时我们通过 RS-232(?标准串行通信)与打印机进行通信,效果很好,所有信息都从打印机及时准确地返回。
最近我使用 Epson 理货打印机,发现 Windows 打印机驱动程序笨拙且低效。我降低了一个级别并通过 GDI 直接与打印机通信,一切都令我满意。
我说去掉中间人,如果你降低一个级别并直接与打印机通信,而不是通过Windows打印机驱动程序通信,你会取得更大的成功。
希望这可以帮助,
| 归档时间: |
|
| 查看次数: |
10530 次 |
| 最近记录: |