ток C# POS.NET Печать Выпуск:PrintNormal() Выпуск «Не инициализирован»
PrintNormal()
Выдает исключение = «Это не инициализирован»
CheckHealth
= «Это не инициализирован» «Это не инициализированное исключение при печати на Epson TM-T88IV
Использование POS для .NET 1.12 и служебных объектов Epson OPOS для .NET (v1.11.9) Успешно удается открыть, утвердить и установить DeviceEnabled-true для PosPrinter
Проблема после отправки ничего на принтер PrintNormal() приводит к тому, что исключение 'It is not initialized' выбрано. Утилита CheckHealth, которая поставляется с Epson OPOS ADK, дает точно такую же ошибку. При использовании PrintNormal (PrinterStation.Receipt исключение составляет «Указанная станция не установлена«
принтер печатает отлично, используя прямой параллельный принтер сам печатает
Как мы не можем бросить исключение с сообщением. - «It не инициализирован '
void K8POSPrint()
{
/// <summary>
/// PosPrinter object
/// </summary>
PosPrinter m_Printer = null;
try
{
//Use a Logical Device Name which has been set on the SetupPOS.
string strLogicalName = "PosPrinter";
try
{
//Create PosExplorer
PosExplorer posExplorer = new PosExplorer();
DeviceInfo deviceInfo = null;
try
{
// Device Info is not null when the printer has the logical name
deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
}
catch (Exception ExDevice)
{
}
//Open the device
m_Printer.Open();
//Get the exclusive control right for the opened device. Then the device is disable from other application.
m_Printer.Claim(1000);
//Enable the device.
m_Printer.DeviceEnabled = true;
// ////CheckHealth.
//m_Printer.CheckHealth(Microsoft.PointOfService.HealthCheckLevel.Interactive);
// //As using the PrintNormal method, send strings to a printer, and print it [\n] is the standard code for starting a new line.
/// Current Issue Next Line thows an exception - 'It is not initialized'
m_Printer.PrintNormal(PrinterStation.Receipt, "Hey Now OPOS for .NET\n");
// the next line would throw the exception 'The specified station is not mounted.'
// m_Printer.PrintNormal(PrinterStation.Slip,"Hey Now Slip OPOS.NET\n");
}
catch (PosControlException)
{
}
}
catch (Exception ex)
{
}
}
Дополнительная информация: программы, установленные при попытке печати на ККМ являются:
1. установленные APD4 драйвера принтера Epson TI88IV
APD_412EWM.exe
https://www.epsonexpert.com/ee/techRes/index.htm?ProductId=570
После этого набора в принтерах панели управления можно выбрать свойства принтера & напечатать пробную на принтер успешно.
2. Установленный Microsoft POS.NET 1,12
POSfor.NET.msi http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eaae202a-0fcc-406a-8fde-35713d7841ca
3. Установленные Epson OPOS ADK V2.67
ADK267ER4.exe
https://www.epsonexpert.com/ee/appDev/appDevOPOS.htm
4. Установлен EPSON OPOS ADK для. NET 1.11.8
OPOSN 1 11 18.exe
https://www.epsonexpert.com/ee/appDev/appDevOPOS.htm
5. Установленные OPOS Общий контроль объектов 1.13.001
OPOS_CCOs_1.13.001.msi
http://monroecs.com/oposccos_current.htm
6. SetupPOS - Добавленное устройство & Logical Name
7. Проверка работоспособность по-прежнему бросает ошибку Это не инициализируется OPOS_E_ILLEGAL 10007 (0x00002717)
Я думаю, что ваша попытка ловить вложенность является проблемой, вы не получаете реальной проблемы здесь. Попробуйте удалить некоторые из кодов Try catch и оставить только один. Тогда вы увидите, что такое настоящая проблема. – Rumplin
У вас есть принтер OPOS с именем PosPrinter? Вы можете зарегистрироваться в реестре под HKEY_LOCAL_MACHINE \ SOFTWARE \ OLEforRetail \ ServiceOPOS \ PosPrinter', должен быть под-ключ с именем 'PosPrinter'. Является ли настройка принтера в Windows на принтере и устройствах, если она пытается удалить? Из того, что я помню, если принтер настроен в Windows, он не всегда будет работать в OPOS. – Re0sless