从WPF / C#连接到USB收据打印机

时间:2019-02-05 12:09:38

标签: c# wpf printing usb receipt

我被困在已经完成的任务上,我正在尝试连接并打印到USB收据打印机,但尚未成功。该公司从中国购买了一个售货亭,基本上是一台带触摸屏和打印机的Windows电脑。 我正在为此亭子构建一个WPF(C#)应用程序,该应用程序应该能够打印收据。

自助服务台支架随附用于测试打印机的工具 enter image description here 自助服务亭本身可以正常工作,但是当我将打印机连接到个人计算机时,它将无法工作。

信息亭和我的个人计算机上的打印机在“设备和打印机”下显示为“未指定”,名称为“ JRSVC打印机” enter image description here

在信息亭和我的计算机上,打印机似乎都使用名为“ usbprint.sys”的驱动程序 enter image description here

我试图从C#连接到打印机: enter image description here 但是我只能找到非“未指定”的打印机。

因此,我非常坚持使用该USB打印机进行连接和打印的方式。 “打印测试工具”可以轻松地从自助服务终端支架本身打印(但不能从我自己的PC吗?),因此即使在自助服务终端支架的“未指定”下方,它也可以正常工作。

物理打印机如下所示: enter image description here

这是自助服务终端站随附的软件的链接: http://www.filedropper.com/chinaprintersoftware

如果有人可以向我指出正确的方向,以便我可以从WPF(C#)应用程序进行连接和打印,

1 个答案:

答案 0 :(得分:0)

我的理解是,usbprint并不是大多数人都熟悉的“常规”打印机驱动程序,而是用于直接与硬件接口的低级驱动程序。这意味着您无法通过GDI界面进行常规打印,不能获得Windows打印的大部分优势,也无法从常规Windows应用程序进行打印。

要做的第一件事是看USBPRINT documentation,即how to print上的各个部分。如果我自己这样做,我会打开一个快速的C ++应用程序只是为了使打印机工作,然后将其包装到WPF应用程序可以使用的托管C ++库中,或者最好直接通过DLLImport接口。

要发送的数据取决于打印机。有各种各样的标准,因此您必须获取它的文档或查看演示应用程序发送的内容。考虑到这东西看起来有多老,它可能支持常规LPT1纯文本和转义序列。

如果没有其他原因,您应该尝试查找它的文档,除非是为了查看它是否具有任何配置选项。我花了很多年时间为各种行业开发WPF信息亭软件,并且我看到的大多数打印机至少都支持某种串行仿真功能。实际上,在执行其他任何操作之前,您可能应该检查设备管理器,尤其是“端口(COM和LPT)”部分。如果它在那里显示,那么您的工作就会轻松很多。

更新:实际上我只是去看了一下文档,您确定这东西没有作为自助服务终端本身上的串行端口显示吗?因为从文档来看,它似乎支持它:

enter image description here