首页 > 解决方案 > 获取要被 UWP POS 打印机驱动程序/API 识别的 ESC/POS 模式打印机

问题描述

我需要在 UWP 应用程序中打印标签。它旨在用作面向客户的 Kiosk,这使得标准 UWP 打印选项没有吸引力,因为它们要求用户单击 Windows 打印确认对话框。

只能使用 POS(销售点)打印模式进行自动打印。 Microsoft 的文档列出了几款仅收据(非标签)打印机,它们已经过测试/证明兼容,但其他 ESC/POS 模式打印机也可以工作。

Windows 支持使用 Epson ESC/POS 打印机控制语言的网络和蓝牙连接的收据打印机。下面列出的打印机是使用 POSPrinter API 自动发现的。提供 ESC/POS 仿真的其他收据打印机也可以工作,但需要使用带外配对过程进行关联。

我有一台 Brother QL-810W 标签打印机,我使用 Brother 的配置软件将其置于 ESC 模式并通过 USB 连接。不幸的是,目前Microsoft 的 UWP 示例/演示应用程序集合中的POS 打印应用程序没有检测到它。

MS文档提到可能需要“带外配对”,我认为这仅限于设置蓝牙打印机。然而,与文本相关联的链接已经坏了,因为它重定向到的页面没有说任何关于配对的字眼。

标签: c#printinguwppoint-of-salepointofservice

解决方案


@丹尼利,

您遇到的根本问题是 Brother QL-810W 标签打印机支持 ESC/P 而不是 ESC/POS。这是两种由爱普生设计的打印机控制语言,但它们并不相同。ESC/P 用于页面打印机,ESC/POS 用于收据打印机。此外,您引用的文档指出,我们的 ESC/POS 实施支持网络和蓝牙连接的打印机,但没有提及 USB 连接。由于上述两个问题,带外配对(只是手动创建的连接器字符串)在这种情况下无济于事。

在此响应时,通过 Windows.Devices.PointOfService 与 USB 连接的打印机交互的唯一方法是通过我们的 OPOS 桥实现,这需要安装 OPOS 和硬件供应商提供的 OPOS 服务对象。如果 OPOS 处于工作状态,我们将尝试与 OPOS Common Controls 进行通信,但 Brother 目前不提供此打印机的 OPOS 服务对象。

将来,我们希望为不需要 OPOS 访问本地连接的打印机的其他打印机控制语言和现代驱动程序接口提供支持。

在引用使用 Windows.Devices.PointofService API 命名空间的实现时,请使用 PointOfService 标签,以便我们以后更容易找到有关此主题的问题。

特里·沃里克,微软


推荐阅读