2015-02-08 4 views
0

Я работаю на Thermal Receipt Printer (ARP-990KE) для проекта, где я попытался под кодом для распечатки счета-фактуры, но в коде GetDevice() дал мне ошибку Значение не может быть имя null.Parameter: устройствоPosExplorer.GetDevice() возвращает всегда null в C# .net Форма Windows Приложение

 PosExplorer posExplorer = new PosExplorer(this); 

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

ответ

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