2015-04-20 2 views
0

Мой принтер Zebra TTP 7030 подключен к локальному компьютеру через USB.Как получить статус принтера USB Zebra от JAVA

Я могу распечатать данные с помощью 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's Link OS SDK не поддерживает мой принтер. Есть ли способ получить статус принтера?

РЕШЕНИЕ: Я использовал JNA, чтобы получить статус принтера Windows для моего принтера Zebra.

Вот пример того, как получить информацию о принтере с помощью ЮНА How can i get a printer's make and model in Java?

ответ

2

Если Zebra принтеры по-прежнему работать с БФЛ вы можете посылать команды, просто открыть порт виртуальный Com и посылать команды ZPL текст на основе непосредственно

(С Z4000 и ниже он работал нормально) ~ HS для получения статуса.

Смежные вопросы