繁体   English   中英

如何获取java中的打印状态?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM