[英]how to get print status in java?
我正在使用以下 java 代码打印具有打印状态的 pdf 文件,但打印状态( printDataTransferCompleted、printJobCompleted、printJobFailed、printJobCanceled 等)没有返回。
下面是Java代码,
PDDocument document = PDDocument.load(new File("D:\\Rose\\Work\\17.pdf"));
PrintService myPrintService = findPrintService("Champ RP Series");
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(document));
job.setPrintService(myPrintService);
job.print();
if(job.isCancelled() == true) {
System.out.println("cancelled"+ job.isCancelled());
}else {
System.out.println("progress"+ job.isCancelled());
}
DocPrintJob docPrint = myPrintService.createPrintJob();
System.out.println(docPrint.getPrintService());
docPrint.addPrintJobListener(new PrintJobListenerSample());
如何返回打印状态(printDataTransferCompleted、printJobCompleted、printJobFailed、printJobCanceled 等)?
谢谢
很有可能,在您的代码按预期运行后,已交付正确的结果。 相反,您的代码将无法正确执行,但会在(无论出于何种原因)抛出异常时中止。 因此,要报告此状态,您可以使用 try-catch 块:
try {
// place here your logic from your question
// check if the job was cancelled by user
if (job.isCancelled()) {
log.info("job cancelled by user");
return printJobCancelled;
}
return printDataTransferCompleted; // mark success
} catch (Exception e} { // bad pattern to catch Exception. Get more concise if you can
log.error("Could not print", e); // at least log what happened. If necessary, throw some exception
return printJobFailed; // mark failure
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.