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

我的 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 是否天生就慢

https://stackoverflow.com/questions/58011184/

相关文章:

python - DRF 序列化程序字段重命名为其在验证数据中的源

terminal - 尝试启动 Virtual Box 时如何修复这些错误?

flutter - NestedScrollView with tabbarview scrolli

python - 如何在 seaborn python 中组合两个 relplots?

c# - 如何在 PuppeteerSharp 中设置下载行为?

python - 在单元测试中使用补丁模块时,自动完成 pycharm 不起作用

matplotlib - plt.show() 后不显示绘图,未给出错误 'and only sho

php - 自定义集合操作和IRI转换问题

gitlab - 任何人都可以发布具有外部子模块的 GitLab CI 的工作示例吗?

python - 在pygame中检测键盘输入时只有某些键起作用