2010-10-22 1 views
7

ток 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)

+1

Я думаю, что ваша попытка ловить вложенность является проблемой, вы не получаете реальной проблемы здесь. Попробуйте удалить некоторые из кодов Try catch и оставить только один. Тогда вы увидите, что такое настоящая проблема. – Rumplin

+0

У вас есть принтер OPOS с именем PosPrinter? Вы можете зарегистрироваться в реестре под HKEY_LOCAL_MACHINE \ SOFTWARE \ OLEforRetail \ ServiceOPOS \ PosPrinter', должен быть под-ключ с именем 'PosPrinter'. Является ли настройка принтера в Windows на принтере и устройствах, если она пытается удалить? Из того, что я помню, если принтер настроен в Windows, он не всегда будет работать в OPOS. – Re0sless

ответ

0

Проблемы может не программное обеспечение, а аппаратное обеспечение. Я видел подобный вопрос (в http://social.msdn.microsoft.com/Forums/vstudio/en-US/446fd4cc-db6b-4822-b3c8-7d9a98bf7eb4/it-is-not-initialized-when-trying-to-printnormal?forum=posfordotnet), где разработчик использовал удлинительный кабель, который не был параллельным. Как только он подключил параллельный кабель непосредственно к принтеру (без удлинительного кабеля), его программное обеспечение работало. Это было после того, как он позвонил Epson и заказал новый принтер, потому что они сказали ему, что его оригинальный принтер несовместим с .NET, так что это также может быть вашей проблемой.