我正在使用 System.Printing 打印文档,并且想知道打印作业何时在打印机上物理完成或停止。一旦打印机接受打印作业,Windows spooler 就会自动删除打印作业,在那之后,我没有明确的方法知道打印是否成功。
这就是我使用AddJob创建打印作业的方式。
PrintSystemJobInfo job = queue.AddJob("name", "C:/test/test.xps", false, MyPrintTicket);
我可以从PrintSystemJobInfo中获取许多属性(打印、已删除、错误等),但这些属性仅适用于打印作业,因为它存在于假脱机中。一旦假脱机丢失此打印作业,作业状态始终为“已删除”。
简而言之,是否有任何通用的、程序化的方式可以让我找出打印作业是否真的成功——知道打印是否由于完成、错误、卡纸、缺纸等而停止?