PrintJobEvents上的printJobCompleted在java中不起作用
我目前正在使用物理打印机打印pdf文档。打印操作成功,但未在PrintJobEvents上完成PrintJob的执行。我想知道为什么printDataTransferCompleted和printJobNoMoreEvents工作时它不工作 这是我的代码:PrintJobEvents上的printJobCompleted在java中不起作用,java,printing,Java,Printing,我目前正在使用物理打印机打印pdf文档。打印操作成功,但未在PrintJobEvents上完成PrintJob的执行。我想知道为什么printDataTransferCompleted和printJobNoMoreEvents工作时它不工作 这是我的代码: PdfBook pdfBook = new PdfBook(decodePdf, printingDevice, attributeSet); SimpleDoc doc = new SimpleDoc(pdfBook, Do
PdfBook pdfBook = new PdfBook(decodePdf, printingDevice, attributeSet);
SimpleDoc doc = new SimpleDoc(pdfBook, DocFlavor.SERVICE_FORMATTED.PAGEABLE, null);
DocPrintJob printJob = printingDevice.createPrintJob();
//ADD A LISTENER
printJob.addPrintJobListener(new PrintJobAdapter() {
@Override
public void printDataTransferCompleted(PrintJobEvent event) {
System.out.println("Data transfer is complete");
String itwillout = "Destined";
System.out.println(itwillout);
}
@Override
public void printJobCompleted(PrintJobEvent event) {
System.out.println("Data transfer is complete");
String verify = "This means that the print job is complete!";
System.out.println(verify);
variablez = "abc";
}
@Override
public void printJobNoMoreEvents(PrintJobEvent event) {
System.out.println("No more events will be received");
}
});
try {
printJob.print(doc, attributeSet);
} catch (PrintException e) {
LogWriter.writeLog("Exception " + e + " printing");
}
decodePdf.closePdfFile();
//I placed this to verify if the job is completed
while(variablez != "abc"){
System.out.println("The printer is not yet finished in printing!");
try {
Thread.sleep(7000); //1000 milliseconds is one second.
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
if (variablez == "abc"){
break;
}
}
if (done == true){
System.out.println("Exiting printing process");
}
是问题上面的代码,还是我正在使用的打印机?或者我遗漏了上面代码中的某些内容
我的目标是:while循环将持续运行,直到满足特定条件。如果variablez等于字符串“abc”,那么它将退出循环并执行其余的命令或代码
注意:我声明字符串variablez=null;在类的最上面部分仅对我而言
printDataTransferCompleted
和printJobNoMoreEvents
调用了名称,无法获得任何其他事件。同样由于某些原因,每一个都会被连续调用两次。。。仍然在寻找这个问题的答案。