Как получить расположение принтера

Я пытаюсь показать расположение принтеров в диалоговом окне. Но, к моему удивлению, ни одна служба печати, похоже, не имеет атрибута местоположения, хотя я подтвердил, что некоторые из моих принтеров отображают местоположение на панели управления принтера Windows.

Я использовал этот код для печати местоположений (он всегда печатает "нуль" для местоположения). Моя версия Java - 1.7.0_21:

public class PrintLocation {

public static void main(String[] argv) {
    PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
    for (PrintService service : services) {
        Object location = service.getAttribute(PrinterLocation.class);
        System.out.println(service.getName() + " - " + location);
    }
}

}

Разве это не поддерживается/реализуется JRE или я что-то не так здесь делаю? Как получить расположение принтера?

EDIT: Выход на моей машине:

\\srv51\SIR-2725-01_KX_color - null
\\srv51\SIR-2725-01_KX_sw - null
Microsoft XPS Document Writer - null
Microsoft Office Document Image Writer - null
FreePDF XP - null

EDIT2: Как было предложено, я распечатал все атрибуты:

PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService service : services) {
    PrintServiceAttributeSet attrs = service.getAttributes();
        System.out.println("Service: " + service.getName());
        int i = 1;
        for (Object attr : attrs.toArray()) {
        System.out.println("Attr #" + i + ": " + attr.getClass().getSimpleName()
            + ", " + attr);
        ++i;
    }
}

и я получил:

Service: \\srv51\SIR-2725-01_KX_color
Attr #1: ColorSupported, supported
Attr #2: PrinterName, \\srv51\SIR-2725-01_KX_color
Attr #3: QueuedJobCount, 0
Attr #4: PrinterIsAcceptingJobs, accepting-jobs
Service: \\srv51\SIR-2725-01_KX_sw
Attr #1: ColorSupported, supported
Attr #2: PrinterName, \\srv51\SIR-2725-01_KX_sw
Attr #3: QueuedJobCount, 0
Attr #4: PrinterIsAcceptingJobs, accepting-jobs
Service: Microsoft XPS Document Writer
Attr #1: ColorSupported, supported
Attr #2: PrinterName, Microsoft XPS Document Writer
Attr #3: QueuedJobCount, 0
Attr #4: PrinterIsAcceptingJobs, accepting-jobs
Service: Microsoft Office Document Image Writer
Attr #1: ColorSupported, not-supported
Attr #2: PrinterName, Microsoft Office Document Image Writer
Attr #3: QueuedJobCount, 0
Attr #4: PrinterIsAcceptingJobs, accepting-jobs
Service: FreePDF XP
Attr #1: ColorSupported, supported
Attr #2: PrinterName, FreePDF XP
Attr #3: QueuedJobCount, 0
Attr #4: PrinterIsAcceptingJobs, accepting-jobs

Таким образом, для любого принтера на моей машине не существует PrinterLocation.

Ответы

Ответ 1

От http://download.java.net/jdk8/docs/api/javax/print/attribute/package-summary.html,

Как только принтер начнет обработку задания на печать, появится дополнительная информация о задании, которая может включать в себя: состояние задания (например, завершенное или поставленное в очередь) и количество напечатанных страниц. Эти части информации также являются атрибутами. Атрибуты также могут описывать сам принтер, например: имя принтера, расположение принтера и количество заданий в очереди.

Не уверен, что это означает, что он становится доступным после запуска процесса или не