2013-04-22 70 views
1

要检查默认打印机的当前状态,我们可以使用Java API。我们需要超出正确的attributeUpdate方法。如何使用java知道网络打印机状态?

@Override 
    public void attributeUpdate(PrintServiceAttributeEvent psae) 
    { 

     Attribute[] att; 
     att = psae.getAttributes().toArray(); 
     for (Attribute attribute : att) 
      { 
       System.out.println(attribute.toString()); 
      } 
    } 

但在这里我的问题是将其请求发送到物理打印机,给我们回应或只是检查驱动程序的安装,形成我们的本地机器,给我们的状态?如果它来自本地机器,我如何将请求发送到物理打印机并获得响应?

+0

使用堆栈溢出链接:http://stackoverflow.com/questions/5328519/java-get-printer-status-paper-low -out – 2013-04-22 11:52:24

+0

well javax.print。*不会向打印机发送请求。它会检查安装。我用这个并检查我的打印机状态。天气我连接或不连接到打印机它会给出相同的答案。所以它只是检查打印机驱动器的安装。 – user2255885 2013-04-22 12:00:07

回答

0

它只会查询本地机器来确定属性。如果你想实际发送一个数据包,那么你应该使用snmp4jLPR

+0

感谢您的帮助,我对snmp4j没有任何意见。我喜欢看一些示例应用程序如何在java中使用snmp4j。 – user2255885 2013-04-23 06:44:00