Java打印服务API:将作业发送到打印机后台打印?

Java打印服务API:将作业发送到打印机后台打印?

问题描述:

我正在使用Java打印服务API来选择PrintService,然后将它传递给JasperReportJRPrintServiceExporter。基本的想法是将文件发送到提供的PrintService。它实际上是使用java.awt.print.PrinterJob.print()Java打印服务API:将作业发送到打印机后台打印?

好像你不能将打印作业发送到具有PrinterIsAcceptingJobs.NOT_ACCEPTING_JOBS属性,当它处于脱机状态或关机。如果我发送的作业给它的打印机,我会得到一个PrinterException,因为它没有接受作业。

是否可以打印到“NOT_ACCEPTING_JOBS”打印机?在实际的操作系统中,这个工作在队列中排队。如何使用Java打印服务API实现相同的效果?

我认为你试图解决的问题类似于this bug。问题似乎是Java 1.5和1.6查看错误的标志(打印机而不是队列)。

似乎可行的解决方案是使用描述为in this forum的ForceAcceptPrintService。或者, this post提到了一种使用字节操作的解决方法,但我并没有自己尝试该解决方案。