C# 是否有创建OPOS打印队列c的方法#
环境:我有2台爱普生打印机通过网络连接。这台打印机使用OPOS以c#格式打印5台PC上的所有收据票据 问题:大多数情况下,打印机无法打印票据,因为它们被某些POS机锁定。其他情况下,打印机打印时间过长 打印代码:C# 是否有创建OPOS打印队列c的方法#,c#,epson,pos,opos,C#,Epson,Pos,Opos,环境:我有2台爱普生打印机通过网络连接。这台打印机使用OPOS以c#格式打印5台PC上的所有收据票据 问题:大多数情况下,打印机无法打印票据,因为它们被某些POS机锁定。其他情况下,打印机打印时间过长 打印代码: p.printerOPOS.Open(); p.printerOPOS.Claim(PRINT_WAIT_SECONDS); //5 seconds p.printerOPOS.DeviceEnabled = true; p.printerOPOS.PrintNormal(Printe
p.printerOPOS.Open();
p.printerOPOS.Claim(PRINT_WAIT_SECONDS); //5 seconds
p.printerOPOS.DeviceEnabled = true;
p.printerOPOS.PrintNormal(PrinterStation.Receipt, builder);
p.printerOPOS.DeviceEnabled = false;
p.printerOPOS.Close();
问题:如何确保打印?有没有办法创建OPOS队列(就像windows上用于正常打印的队列一样)?最好不要从单个应用程序中使用OPOS,而是查看和更改应用程序的结构
此外:
下面回答了关于在一台装有JavaPOS的计算机上使用一台POS打印机的问题,但它也可以应用于类似您的问题的情况。
如果你只处理OPOS的使用,请考虑这个问题。
这取决于应用程序的软件结构 如果使用打印机的应用程序只有一个进程,请在应用程序启动时执行一次
Open()
,Claim()
,DeviceEnabled=True
。您可以在应用程序终止之前执行DeviceEnabled=False
,Release()
,Close()
如有必要,应用程序将结合使用TransactionPrint()
、RotatePrint()
、PrintNormal()
等进行打印
这缩短了打印所需的时间
如果使用打印机的应用程序同时在多个进程中同时运行,则在每个进程中只有Open()
如果需要打印的过程几乎保持不变,Claim()
和DeviceEnabled=True
在获取打印机控制权的同时切换作业和屏幕的一侧,使用DeviceEnabled=False释放打印机控制权的一侧,调用Release()
当需要打印的进程频繁更改时,Claim()
,DeviceEnabled=True
将在每次使用打印机后执行,并且在打印完成后,当必要的打印完成时,DeviceEnabled=False
,Release()
将保留。对于OPOS,有什么更好的解决方案?我需要个性化每张票,我的客户有不同的打印机