确定是否已使用Java完成打印
有人知道如何确定物理打印机是否使用java完成打印吗?我已经尝试了Job Listener、Job Watcher和Job Events,但所有这些都不起作用
以下是我使用的代码:
private static class PDFPrintJobListener implements PrintJobListener {
private static final boolean showMessages=false;
@Override
public void printDataTransferCompleted(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printDataTransferCompleted=" + printJobEvent);
}
}
@Override
public void printJobCompleted(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printJobCompleted=" + printJobEvent);
}
}
@Override
public void printJobFailed(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printJobEvent=" + printJobEvent);
}
}
@Override
public void printJobCanceled(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printJobFailed=" + printJobEvent);
}
}
@Override
public void printJobNoMoreEvents(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printJobNoMoreEvents=" + printJobEvent);
}
}
@Override
public void printJobRequiresAttention(final PrintJobEvent printJobEvent) {
if(showMessages) {
System.out.println("printJobRequiresAttention=" + printJobEvent);
}
}
我尝试使用侦听器,但无论打印机是否已完成打印或打印机未能打印文档,均未收到任何输出。我也搜索了其他人提出的与此相关的问题,但没有人知道答案。有时,完成的数据传输是侦听器中的唯一输出。所以我想知道如何确定打印机是否完成了文档的打印。谢谢
# 1 楼答案
谷歌搜索的前几个链接获取this。这里
PrintJobAdapter
提供的所有方法都被重写,以便在其实现中具有以下方法调用:这应该是不言自明的,即
notify()
唤醒了在main方法中调用同一对象上的wait()
的第一个线程