java.lang.Object javax.print.PrintServiceLookup
public abstract class PrintServiceLookup
此类的实现为特定类型的 PrintService(通常等效于打印机)提供查找服务。
可同时安装多个实现。所有实现必须能够以 PrintService 实例的方式描述找到的打印机。通常在 JAR 文件中自动查找此服务类的实现(请参阅 SPI JAR 文件规范)。这些类必须是可以使用默认的构造方法进行实例化的。另外,应用程序可以在运行时显式地注册实例。
应用程序只使用此抽象类的静态方法。由子类中的服务提供者实现这些实例方法,当应用程序调用此类的静态方法时,由这些方法报告所有已安装查找类的统一结果。
建议 PrintServiceLookup 实现程序检查 SecurityManager.checkPrintJobAccess(),以拒绝对不受信任代码的访问。遵从此建议的策略意味着不受信任代码可能无法找到任何 PrintService。已下载的 applet 是不受信任代码最常见的示例。
对每个查找服务执行此项检查,从而允许策略中存在灵活性,以反映不同查找服务的需求。
如果安装了安全管理器并且其 checkPrintJobAccess() 方法拒绝访问,则查找结果中不会包括那些通过 registerService(PrintService) 注册的服务。
构造方法摘要 | |
---|---|
PrintServiceLookup() |
方法摘要 | |
---|---|
abstract PrintService |
getDefaultPrintService() 应用程序不直接调用它。 |
abstract MultiDocPrintService[] |
getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes) 应用程序不直接调用它。 |
abstract PrintService[] |
getPrintServices() 应用程序不直接调用它。 |
abstract PrintService[] |
getPrintServices(DocFlavor flavor, AttributeSet attributes) 查找肯定可支持指定属性和 DocFlavor 组合的服务。 |
static PrintService |
lookupDefaultPrintService() 查找此环境的默认 PrintService。 |
static MultiDocPrintService[] |
lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes) 查找能够打印 MultiDoc(包含所有指定的 doc flavor)的 MultiDoc PrintService。 |
static PrintService[] |
lookupPrintServices(DocFlavor flavor, AttributeSet attributes) 查找能够打印指定 DocFlavor 的 PrintService。 |
static boolean |
registerService(PrintService service) 允许应用程序直接注册一个实现了 PrintService 的类的实例。 |
static boolean |
registerServiceProvider(PrintServiceLookup sp) 允许应用程序显式地注册一个实现了查找服务的类。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public PrintServiceLookup()
方法详细信息 |
---|
public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
DocFlavor
的 PrintService。
flavor
- 要打印的 flavor。如果为 null,则不使用此项约束。
attributes
- 该 PrintService 必须支持的属性。如果为 null,则不使用此项约束。
PrintService
对象的数组,这些对象表示那些支持指定 flavor 属性的打印服务。如果没有相符的服务,则数组的长度为零。
public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
在查找可以打印 MultiDoc
(其中的元素可能具有不同 flavor) 的服务方面,此方法很有用。应用程序本身可以依次对每个 DocFlavor
执行多次查找,然后对结果进行整理来完成此功能,但是查找服务可以更高效地完成此项工作。
flavors
- 要打印的 flavor。如果为 null 或为空,则不使用此项约束。否则只返回可打印所有指定 doc flavor 的 multidoc PrintService。
attributes
- 该 PrintService 必须支持的属性。如果为 null,则不使用此项约束。
MultiDocPrintService
对象的数组。如果没有相符的服务,则数组的长度为零。
public static final PrintService lookupDefaultPrintService()
这可能包括使用任意首选的 API,它可作为 Java 或本机平台的一部分而提供。设置属性 javax.print.defaultPrinter 的用户可以重写此算法。指定的服务必须证明是有效的,并且目前可作为默认值返回。
public static boolean registerServiceProvider(PrintServiceLookup sp)
sp
- 查找服务的实现。
true
;否则返回
false
。
public static boolean registerService(PrintService service)
PrintServiceLookup
实例。如果此服务以前未注册并且现在成功注册了,则该方法返回 true。不应使用 StreamPrintService 实例调用此方法。这样始终会注册失败并且该方法将返回 false。
service
- PrintService 的实现。
true
;否则返回
false
。
public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)
此方法由服务提供者实现,由此类的静态方法使用。
结果应该与下列过程相同:获得所有 PrintService,逐个查询每个 PrintService 是否支持指定的属性和 flavor;但是处理时为 PrintService 充分利用查找服务的功能要更为高效。
flavor
- 必需的文档。如果为 null,则忽略它。
attributes
- 必需支持的属性。如果为 null,则不使用此项约束。
public abstract PrintService[] getPrintServices()
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
此方法由服务提供者实现,由此类的静态方法使用。
查找肯定可支持指定属性和 DocFlavor 组合的 MultiDoc PrintService。
flavors
- 必需的文档。如果为 null 或为空,则忽略它。
attributes
- 必需支持的属性。如果为 null,则不使用此项约束。
public abstract PrintService getDefaultPrintService()