有谁知道如何确定物理打印机是否使用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);
}
}
我尝试使用侦听器,但无论打印机是否完成打印或打印机无法打印文档,都没有收到输出。我也搜索了其他人的相关问题,但没有人知道答案。有时数据传输已完成是侦听器中的唯一输出。所以我想知道如何确定打印机是否完成了打印文档。感谢
答案 0 :(得分:0)
我之前使用java试过这段代码。它似乎工作。但我不确定这对你有帮助。听众似乎没有工作。我也不知道为什么。希望this会帮助你。如果不是,我们可能想尝试找到问题的修复程序。
答案 1 :(得分:0)
谷歌搜索的第一个链接提取this。这里覆盖了PrintJobAdapter
提供的所有方法,以便在其实现中调用以下方法:
private void signalCompletion() {
synchronized (JobCompleteMonitor.this) {
completed = true;
JobCompleteMonitor.this.notify();
}
这应该是自解释的,notify()
唤醒在main方法中同一个对象上调用wait()
的第一个线程。