Suppose that I printed some documents from a program like MS Word. Let's say I selected 4 documents at once, so three of them would end up waiting in the printer queue. I would like to access and read some information about the documents waiting in the queue. In other words, how can I access the printer queue and read information about any pending files with java?
Is there a way to do that? If so, how can I do it?
Thanks for the help
解决方案
maybe this function helpful for you.
public Integer getExistQueuePrinter() {
int queue = 0;
PrintService myService = null;
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
if (printService != null) {
//--> set printService.
myService = printService;
//--> get attributes from printService.
AttributeSet attributes = printService.getAttributes();
//--> loop attributes.
for (Attribute a : attributes.toArray()) {
String name = a.getName();
String value = attributes.get(a.getClass()).toString();
//System.out.println(name + " : " + value);
if (name.equals("queued-job-count")) {
//System.out.println(name + " : " + value);
queue = Integer.parseInt(value);
}
}
Object[] obj = attributes.toArray();
//System.out.println("queue = " + obj[3]);
return queue;
/* debug.
for (Object value : obj) {
System.out.println("Color = " + value);
}
*/
}
return null;
}