【发布时间】:2014-07-23 08:17:16
【问题描述】:
我想知道如何使用 PrintServiceAttributeSet 获取默认打印机属性设置。 例如,在从打印机打印之前,我需要知道当前的打印机属性设置,如色度。基于该返回值,我需要将打印机设置为新的属性设置。 谁能帮我吗。 是否可以获取一些示例代码来获取和设置此属性。
【问题讨论】:
我想知道如何使用 PrintServiceAttributeSet 获取默认打印机属性设置。 例如,在从打印机打印之前,我需要知道当前的打印机属性设置,如色度。基于该返回值,我需要将打印机设置为新的属性设置。 谁能帮我吗。 是否可以获取一些示例代码来获取和设置此属性。
【问题讨论】:
参考How do I get print service attribute set?:
这个例子演示了如何获取打印服务的属性集 使用
javax.printAPI。首先我们找到默认打印机 当前机器使用PrintServiceLookup类。这会给我们PrintService对象,如果没有打印服务,此对象可能为 null 找到了。最后一步是通过调用获取打印服务属性集
PrintService的getAttributes()方法。我们可以将 使用toArray()方法将AttributeSet返回到一个数组中,并且 迭代它。
package org.kodejava.example.print;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.Attribute;
import javax.print.attribute.AttributeSet;
public class PrinterAttribute {
public static void main(String[] args) {
//
// Locates the default print service for this environment.
//
PrintService printer =
PrintServiceLookup.lookupDefaultPrintService();
if (printer != null) {
//
// Getting print service's attribute set.
//
AttributeSet attributes = printer.getAttributes();
for (Attribute a : attributes.toArray()) {
String name = a.getName();
String value = attributes.get(a.getClass()).toString();
System.out.println(name + " : " + value);
}
}
}
}
【讨论】: