PosPrinter GetDefaultAsync всегда возвращает ноль

Я пытаюсь распечатать билет, используя.NET POS, но не могу получить принтер по умолчанию.

 PosPrinter defaultPrinter = await PosPrinter.GetDefaultAsync();

Я также попробовал это:

string deviceSelector =  PosPrinter.GetDeviceSelector();
PosPrinter printer = await PosPrinter.FromIdAsync(deviceSelector);

Мой термопринтер настроен по умолчанию.

1 ответ

Вы пробовали способ, используя PosExplorer и имя принтера? Snippet:

public PosPrinter GetPrinterByName(System.Windows.Forms.Form mainForm, string printerName)
{
  PosPrinter       printer  = null;
  PosExplorer      explorer = new PosExplorer(mainForm);
  DeviveCollection printers = explorer.GetDevices(DeviceType.PosPrinter);

  if (printers != null && printers.Count > 0)
  {
    for (int i = 0; i < printers.Count; i++)
    {
      if(0 == string.Compare(printerName, printers[i].ServiceObjectName))
      {
        printer = printers[i];
        break;
      }
    }
  }

  return printer;
}
Другие вопросы по тегам