【发布时间】:2011-04-06 14:09:03
【问题描述】:
我正在尝试获取有关我系统上打印机的一些信息。
在 Windows 和 Linux 上,使用此代码,仅填充 PrinterName 属性:
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null,null);
for( PrintService printService : printServices ) {
log.info("Found print service: "+printService);
log.info(printService.getAttribute(PrinterName.class));
log.info(printService.getAttribute(PrinterLocation.class));
log.info(printService.getAttribute(PrinterMakeAndModel.class));
log.info(printService.getAttribute(PrinterMessageFromOperator.class));
log.info(printService.getAttribute(PrinterMoreInfo.class));
log.info(printService.getAttribute(PrinterMoreInfoManufacturer.class));
log.info(printService.getAttribute(PrinterState.class));
log.info(printService.getAttribute(PrinterStateReasons.class));
log.info(printService.getAttribute(PrinterURI.class));
}
使用toArray()函数就可以了...
log.info("Found print service: "+printService);
for( Attribute a : printService.getAttributes().toArray() ) {
log.info("* "+a.getName()+": "+a);
}
...这是结果:
找到打印服务:Win32 打印机:Brother MFC-9420CN BR-Script3 * 支持颜色:支持 * 打印机名称:Brother MFC-9420CN BR-Script3 * 打印机正在接受作业:接受作业 * queued-job-count: 0
我如何获得更多信息,例如打印机评论?
【问题讨论】:
-
当然可以 - 只需使用超类型 (
AttributeSet) 中的toArray并迭代数组。