PosExplorer.GetDevice()在C#.net Windows窗体应用程序中返回Always null

时间:2015-02-08 13:07:54

标签: c# printing point-of-sale opos pos-for-.net

我正在处理热收据打印机(ARP-990KE)项目,我尝试使用以下代码打印发票,但代码GetDevice()给我错误值不能为null。参数名称:设备

       PosExplorer posExplorer = new PosExplorer(this);

       DeviceInfo receiptPrinterDevice = posExplorer.GetDevice("Generic/Text Only"); 
       return (PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice);  //  Here it gives me null 

1 个答案:

答案 0 :(得分:1)

GetDevice似乎被你传递的"Generic/Text Only"搞糊涂了。

PosExplorer.GetDevice(String)方法(即接受单个参数的方法)返回给定设备类的默认设备。设备类应该是DeviceType类(在您的情况下为DeviceType.PosPrinter)中的常量之一。这是GetDevice(String)期望的参数:

DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter);

请注意,如果您打算使用此方法,请确保您已将打印机设置为默认设置(或者没有此类型的其他设备)。

您可能希望考虑使用更通用的替代方案。 PosExplorer.GetDevice(String, String)在其第二个参数中接受设备名称,因此您不会仅限于默认设备:

DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter, <device name>);

<device name>可以使用

计算出来
"C:\Program Files (x86)\Microsoft Point Of Service\posdm.exe" listdevices /type:PosPrinter