我正在处理一个C#应用程序,在通过订购终端请求项目后,它会自动将食品和饮料订单打印到Epson打印机。
打印机是以太网,并在EPSON OPOS ADK Version2.68E驱动程序界面的终端上设置。
代码使用'Microsoft.PointOfService.PosPrinter'类与打印机进行交互。
使用PosPrinter'TransactionPrint'实例方法将打印逻辑包含在事务中。
有一些逻辑可以捕获TransactionPrint方法抛出的任何异常,如果抛出异常,则认为打印不起作用。但是,情况并非总是如此。如果在TransactionPrint方法调用返回之前从打印机拔下网络电缆,则完成打印,但代码中会抛出异常,因此当代码重试打印时会产生重复的票证。
有人知道一种方法,即使网络异常被提出,也能判断打印是否成功?我查看了'PosPrinter'对象上的所有属性,但看不到任何有用的东西。我需要一种方法来确定打印是否有效,然后将订单标记为已打印,以避免重复票证。