gpt4 book ai didi

c# - Windows 后台打印驱动程序 - 状态请求发送不正确

转载 作者:行者123 更新时间:2023-12-05 07:19:07 26 4
gpt4 key购买 nike

我的 WinForms c# 应用程序广泛使用 Zebra 标签打印机,我们同时使用 EPL 和 ZPL 打印模式。经过多次测试,我们发现当 Windows 后台打印程序向打印机发送命令时,它会在打印后立即向同一台打印机发送状态命令。它以某种方式从驱动程序或打印机本身知道状态命令是什么,即“^HS”。

问题是当我们将打印机切换到 EPL 模式时,发送了状态命令,但它是 ZPL 格式并且打印机没有响应。这种缺乏响应会导致 Windows 打印后台处理程序在等待响应超时时出现显着延迟。

我正在使用以下链接中的标准代码进行打印。

https://github.com/andyyou/SendToPrinter/blob/master/Printer/RawPrinterHelper.cs

当我们使用 Zebra 直接连接 SDK 时,我们可以直接与打印机对话,忽略 Windows 后台打印程序,并且不会发送此类状态命令。这是我们想要的行为,但 Zebra SDK 不适合我们的目的。

有人知道我们如何改变 Windows 后台处理程序的这种行为吗?

示例代码,使用上面链接中的 RawPrinterHelper:

//Standard Zebra SGD to set ZPL language
string SetZPL = "! U1 setvar \"device.languages\" \"zpl\"\n";
//Standard Zebra SGD to set EPL language
string SetEPL = "! U1 setvar \"device.languages\" \"epl\"\n";

//Push to ensure printer is in ZPL mode
RawPrinterHelper.SendStringToPrinter(printerName, SetZPL);
//Set printer into EPL mode - This is where the delay occurs
RawPrinterHelper.SendStringToPrinter(printerName, SetEPL);

最佳答案

过去,当我使用 ZPL 作为打印解决方案时,我的字符串必须以

^XA

结束于

^XZ

有一个在线编辑器,您可以在其中实时使用 ZPL 代码。我相信当您使用此代码时,它只是直接写入打印机。虽然我不太熟悉 EPL,但我不确定为什么会慢一些。

很难知道为什么会有延迟,或者 EPL 是否天生就慢

关于c# - Windows 后台打印驱动程序 - 状态请求发送不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58011184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com