[英]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.