使用控制代码踢现金抽屉
Kick Cash Drawer using Control Code
我正在使用爱普生热敏打印机和钱箱。钱箱与打印机相连。参考http://keyhut.com/popopen.htm,踢钱箱的密码是27,112,0,50,250。我试图将此代码发送到打印机但没有任何反应。我使用 POS for .NET 并且打印机在 SetupPos 中注册。
这是我的代码:
deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
m_Printer.Open();
m_Printer.Claim(1000);
m_Printer.DeviceEnabled = true;
//command = "ESC|p|0|25|251";
command = "\x1B|\x70|\x00|\x19|\xFB";
m_Printer.PrintImmediate(PrinterStation.Receipt, command);
//m_Printer.CutPaper(100);
m_Printer.DeviceEnabled = false;
m_Printer.Release();
m_Printer.Close();
打印文本正常,但发送代码无效。我能做什么?谢谢
POS for.NET(UnifiedPOS) 规范不支持通过 POSPrinter 设备的 PrintNormal()/PrintImmediate() 方法打开 CashDrawer。
由于POSPrinter设备关联了一个独立的CashDrawer设备,请将对应设备作为CashDrawer打开(),使用OpenDrawer()方法打开抽屉。
但是,根据供应商的不同,有可能支持像您这样的用法。
我不知道 EPSON POSPrinter 是否支持这种用法。
请询问爱普生或您的经销商是否可以使用这种方式。
另外:
除了 POS for.NET,还有一种方法可以像普通 Windows 打印机一样安装和使用设备驱动程序。
部分供应商提供Windows收据打印机的打印机驱动程序,还支持切纸和打开抽屉功能。
在 EPSON 中,它以 Advanced Printer Driver 的名称提供。
提问者好像用这个解决了问题
不过这个设备驱动经常和POS专用.NET/OPOS/JavaPOS,打印的时候需要使用Windows标准打印API.
打开抽屉踢码“ESC|p|0|25|251”发送的第三个代码实际上是一个控制现金抽屉1或2的符号,它使用'0'或'1'。 ASCII table 中的 0 或 1 符号映射到十进制 48 或 49。因此您需要使用十六进制 x30 或 x31 而不是 x00。
只是为了添加更多信息,第四和第五个代码是通过发送十进制(值在 0 到 255 之间)* 2ms 来打开或关闭信号踢的时间。
如果您仍想使用现金抽屉启动代码并将设备连接到打印机,我希望这能解决问题。
我正在使用爱普生热敏打印机和钱箱。钱箱与打印机相连。参考http://keyhut.com/popopen.htm,踢钱箱的密码是27,112,0,50,250。我试图将此代码发送到打印机但没有任何反应。我使用 POS for .NET 并且打印机在 SetupPos 中注册。
这是我的代码:
deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
m_Printer.Open();
m_Printer.Claim(1000);
m_Printer.DeviceEnabled = true;
//command = "ESC|p|0|25|251";
command = "\x1B|\x70|\x00|\x19|\xFB";
m_Printer.PrintImmediate(PrinterStation.Receipt, command);
//m_Printer.CutPaper(100);
m_Printer.DeviceEnabled = false;
m_Printer.Release();
m_Printer.Close();
打印文本正常,但发送代码无效。我能做什么?谢谢
POS for.NET(UnifiedPOS) 规范不支持通过 POSPrinter 设备的 PrintNormal()/PrintImmediate() 方法打开 CashDrawer。
由于POSPrinter设备关联了一个独立的CashDrawer设备,请将对应设备作为CashDrawer打开(),使用OpenDrawer()方法打开抽屉。
但是,根据供应商的不同,有可能支持像您这样的用法。
我不知道 EPSON POSPrinter 是否支持这种用法。
请询问爱普生或您的经销商是否可以使用这种方式。
另外:
除了 POS for.NET,还有一种方法可以像普通 Windows 打印机一样安装和使用设备驱动程序。
部分供应商提供Windows收据打印机的打印机驱动程序,还支持切纸和打开抽屉功能。
在 EPSON 中,它以 Advanced Printer Driver 的名称提供。
提问者好像用这个解决了问题
不过这个设备驱动经常和POS专用.NET/OPOS/JavaPOS,打印的时候需要使用Windows标准打印API.
打开抽屉踢码“ESC|p|0|25|251”发送的第三个代码实际上是一个控制现金抽屉1或2的符号,它使用'0'或'1'。 ASCII table 中的 0 或 1 符号映射到十进制 48 或 49。因此您需要使用十六进制 x30 或 x31 而不是 x00。 只是为了添加更多信息,第四和第五个代码是通过发送十进制(值在 0 到 255 之间)* 2ms 来打开或关闭信号踢的时间。 如果您仍想使用现金抽屉启动代码并将设备连接到打印机,我希望这能解决问题。