当前的C#POS.NET打印问题:PrintNormal()
引发异常='未初始化'
CheckHealth
='未初始化'
打印到爱普生TM-T88IV时出现“未初始化”异常
使用POS for .NET 1.12和Epson OPOS ADK for .NET(v1.11.9)服务对象
成功打开,声明和设置PosPrinter的DeviceEnabled-true
在此之后发出将任何内容发送到打印机
PrintNormal()导致引发“未初始化”异常。
Epson OPOS ADK随附的CheckHealth实用程序会导致完全相同的错误。使用PrintNormal(PrinterStation.Receipt时,异常(exception)是“未安装指定的工作站。”
打印机使用直接并行打印效果很好
打印机本身打印
我们如何不能在消息“未初始化”中抛出豁免?
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)
{
}
}
附加信息:
尝试在pos打印机上打印时安装的程序是:
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.已安装适用于.NET 1.11.8的EPSON OPOS ADK
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-添加的设备和逻辑名称
7.检查健康状况仍会引发错误
未初始化
OPOS_E_ILLEGAL 10007(0x00002717)
最佳答案
问题可能不是软件,而是硬件。我看到了一个类似的问题(在http://social.msdn.microsoft.com/Forums/vstudio/en-US/446fd4cc-db6b-4822-b3c8-7d9a98bf7eb4/it-is-not-initialized-when-trying-to-printnormal?forum=posfordotnet处),其中开发人员使用的是不平行的延长电缆。一旦他将并行电缆直接连接到打印机(没有扩展电缆),他的软件便开始工作。这是在他调用爱普生并订购一台更新的打印机之后,因为他们告诉他他的原始打印机与.NET不兼容,所以这也可能是您的问题。
关于c# - PrintNormal()问题 'It is not Initialized',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4000717/