Java打印服务API:将作业发送到打印机后台打印?
问题描述:
我正在使用Java打印服务API来选择PrintService
,然后将它传递给JasperReport
的JRPrintServiceExporter
。基本的想法是将文件发送到提供的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提到了一种使用字节操作的解决方法,但我并没有自己尝试该解决方案。