【问题标题】:Kick Cash Drawer using Control Code使用控制代码踢钱箱
【发布时间】:2018-07-03 01:14:39
【问题描述】:

我正在使用爱普生热敏打印机和钱箱。 Cash Drawer 与打印机连接。参考http://keyhut.com/popopen.htm,踢出钱箱的代码是27,112,0,50,250。我试图将此代码发送到打印机,但没有任何反应。我使用 .NET 的 POS 并且打印机已在 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();

打印文本正常,但发送代码不起作用。我能做些什么?谢谢。

【问题讨论】:

  • 是图书馆需要的字符串中的管道还是什么?

标签: c# thermal-printer pos-for-.net


【解决方案1】:

POS for .NET(UnifiedPOS) 规范不支持通过 POSPrinter 设备的 PrintNormal()/PrintImmediate() 方法打开 CashDrawer。
由于POSPrinter设备关联有独立的CashDrawer设备,请将对应的设备作为CashDrawer open(),用OpenDrawer()方法打开抽屉。

但是,根据供应商的不同,有可能支持像您这样的使用。
我没有关于 EPSON POSPrinter 是否支持这种用法的信息。
请询问 EPSON 或您的经销商是否可以使用这种方式。

另外:
除了 POS for.NET,还有一种方法可以安装设备驱动程序并将其用作常规 Windows 打印机。
一些供应商为收据打印机提供 Windows 打印机驱动程序,并且还支持剪纸和抽屉打开功能。
在 EPSON 中,它以 Advanced Printer Driver 的名称提供。

提问者似乎已经用这个解决了这个问题。

但是,这个设备驱动程序经常是专门用于.NET/OPOS/JavaPOS的POS,打印时需要使用Windows标准的打印API。

【讨论】:

    【解决方案2】:

    打开抽屉踢码“ESC|p|0|25|251”中要发送的第三个代码实际上是一个控制现金抽屉1或2的符号,它使用'0'或'1'。 ASCII 表中的 0 或 1 符号映射到十进制 48 或 49。因此您需要使用 Hex x30 或 x31 而不是 x00。 只是为了添加更多信息,第四和第五个代码是通过发送十进制(0到255之间的值)* 2ms来打开或关闭信号踢的时间。 如果您仍想使用收银机启动代码并将设备连接到打印机,我希望这可以解决问题。

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      相关资源
      最近更新 更多