Java 打印机可用性
在这里,我已编码以获取设备列表,我将检查每个设备的状态Java 打印机可用性,java,Java,在这里,我已编码以获取设备列表,我将检查每个设备的状态 DocFlavor myFormat = DocFlavor.SERVICE_FORMATTED.PRINTABLE; PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); PrintService[] services =PrintServiceLookup.lookupPrintServices(myFormat, aset); System.out.pr
DocFlavor myFormat = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService[] services =PrintServiceLookup.lookupPrintServices(myFormat, aset);
System.out.println("The following printers are available");
for (int i=0;i<services.length;i++) {
PrintService printService = services[i];
PrintServiceAttributeSet printServiceAttributes = printService.getAttributes();
PrinterState printerState =
(PrinterState)printServiceAttributes.get(PrinterState.class);
if (printerState != null){
System.out.println(services[i].getName() + " is online");
} else {
System.out.println(services[i].getName() + " is offline");
}
}
DocFlavor myFormat=DocFlavor.SERVICE\u FORMATTED.PRINTABLE;
PrintRequestAttributeSet aset=新的HashPrintRequestAttributeSet();
PrintService[]services=PrintServiceLookup.lookupPrintServices(myFormat,aset);
System.out.println(“以下打印机可用”);
对于(int i=0;i我最近在从PrintService获取另一个属性时遇到了相同的问题
事实上,它总是返回null,因为该方法从未在Java类中实现过,这是许多属性的情况
如果您确实想获取这些信息,则必须使用windows打印后台处理程序DLL,或者,如果您的打印机是网络打印机,则必须通过SNMP查询这些信息。您确定printerState在脱机时为空吗?是,当打印机打开和关闭时,它将返回空值