0
我的打印機Zebra TTP 7030通過USB連接到本地計算機。如何從JAVA獲得Zebra USB打印機狀態
我可以使用javax.print API打印數據,但無法獲取打印機狀態或來自打印機的任何數據。
我試圖從Java printService屬性獲取打印機狀態,但它不返回有關打印機實時狀態的任何有價值的信息。
Class<? extends Attribute>[] supportedAttributeCategories = (Class<? extends Attribute>[]) service.getSupportedAttributeCategories();
for (Class<? extends Attribute> category : supportedAttributeCategories) {
DocFlavor[] flavors = service.getSupportedDocFlavors();
for (DocFlavor flavo : flavors) {
Object supportedAttributeValues = service.getSupportedAttributeValues(category, flavo, service.getAttributes());
if (supportedAttributeValues instanceof Attribute) {
Attribute attr = (Attribute) supportedAttributeValues;
attribSet.add(attr);
} else if (supportedAttributeValues != null) {
Attribute[] attrs = (Attribute[]) supportedAttributeValues;
for (Attribute attr : attrs) {
attribSet.add(attr);
}
}
}
}
for (Attribute attr : attribSet) {
System.out.println(attr.getName());
System.out.println(service.getDefaultAttributeValue(attr.getCategory()));
}
Zebra的Link OS SDK不支持我的打印機。有沒有辦法獲得打印機狀態?
SOLUTION:我用JNA來獲得我的斑馬打印機的Windows打印機狀態。
下面是例子,如何使用JNA How can i get a printer's make and model in Java?