#c# #wpf #printing #opos #posiflex
Вопрос:
Я использую » Точку обслуживания Microsoft для .Библиотеки DLL NET версии v1.14.’ для подключения к термопринтеру Posiflex (модель PP8800). Фрагмент кода, который я использую, также вставлен ниже. Я запускаю этот код из приложения WPF.
Но я столкнулся с одной странной проблемой. Если принтер включен и машина, к которой подключен принтер, перезапущена, приведенный ниже вставленный код не может претендовать на принтер, а также не выводится из Claim()
инструкции. Принимая во внимание, что если я выключу принтер, а затем включу его перед запуском приведенного ниже фрагмента кода, то он сможет претендовать на принтер.
PosExplorer posExplorer = new PosExplorer();
var printerList = posExplorer.GetDevices(DeviceType.PosPrinter);
foreach (DeviceInfo item in printerList)
{
if (item.ServiceObjectName != printerName)
continue;
posPrinter = (PosPrinter)posExplorer.CreateInstance(item);
posPrinter.Open();
posPrinter.PowerNotify = PowerNotification.Enabled;
posPrinter.FlagWhenIdle = true;
posPrinter.StatusUpdateEvent = PosPrinter_StatusUpdateEvent;
posPrinter.DirectIOEvent = PosPrinter_DirectIOEvent;
posPrinter.ErrorEvent = PosPrinter_ErrorEvent;
posPrinter.OutputCompleteEvent = PosPrinter_OutputCompleteEvent;
try
{
posPrinter.Claim(100);
if (posPrinter.Claimed)
{
isPrinterClaimed = true;
}
else
{
isPrinterClaimed = false;
}
}
catch (Exception ex)
{
isPrinterClaimed = false;
}
break;
}
Кто-нибудь сталкивался с такой же проблемой при использовании библиотек OPOS?
Комментарии:
1. Возможно, вы используете принтер с интерфейсом локальной сети и отключаете свой POS-терминал, не вызывая метод выпуска/закрытия? Такое явление может возникнуть в зависимости от способа управления/реализации принтера и POSfor.NET/OPOS объект обслуживания. У поставщиков принтеров может быть множество таких случаев, поэтому, пожалуйста, свяжитесь с продавцом для получения информации о проблемах и о том, как с ними справиться.
2. Спасибо @kunif за ваш комментарий. Я подключил принтер к USB-порту, и да, я освобождаю принтер до закрытия приложения. Я также нахожусь в контакте с Поставщиком, но пока не получил ответа.