public abstract class PrintServiceLookup extends Object
可以同时安装多个实现。 所有实现必须能够将定位的打印机描述为PrintService的实例。 通常,此服务类的实现将自动定位在JAR文件中(请参阅SPI JAR文件规范)。 这些类必须使用默认构造函数来实例化。 或者应用程序可以在运行时显式注册实例。
应用程序只使用这个抽象类的静态方法。 实例方法由子类中的服务提供者实现,并且所有安装的查找类的结果的统一由应用程序调用时由该类的静态方法报告。
建议使用PrintServiceLookup实现程序来检查SecurityManager.checkPrintJobAccess()以拒绝对不受信任的代码的访问。 遵循此推荐政策意味着不受信任的代码可能无法找到任何打印服务。 下载的小程序是不受信任代码最常见的示例。
这种检查是基于每个查找服务进行的,以允许策略中的灵活性来反映不同查找服务的需求。
如果安装了安全管理器,并且其checkPrintJobAccess()方法拒绝访问,则由registerService(PrintService)注册的服务将不会包含在查找结果中。
Constructor and Description |
---|
PrintServiceLookup() |
Modifier and Type | Method and Description |
---|---|
abstract PrintService |
getDefaultPrintService()
不被应用程序直接调用
|
abstract MultiDocPrintService[] |
getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
不被应用程序直接调用
|
abstract PrintService[] |
getPrintServices()
不被应用程序直接调用
|
abstract PrintService[] |
getPrintServices(DocFlavor flavor, AttributeSet attributes)
找到可以肯定确认的服务,以支持指定的属性和DocFlavors的组合。
|
static PrintService |
lookupDefaultPrintService()
找到此环境的默认打印服务。
|
static MultiDocPrintService[] |
lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
找到能够打印包含所有指定文档风格的MultiDoc的MultiDoc打印服务。
|
static PrintService[] |
lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
找到能打印指定的打印服务 DocFlavor 。
|
static boolean |
registerService(PrintService service)
允许应用程序直接注册实现打印服务的类的实例。
|
static boolean |
registerServiceProvider(PrintServiceLookup sp)
允许应用程序显式注册实现查找服务的类。
|
public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
DocFlavor
。
flavor
- 打印的味道。
如果为null,则不使用此约束。
attributes
- 打印服务必须支持的属性。
如果为null,则不使用此约束。
PrintService
对象的数组。
如果没有服务匹配,则数组为零长度。
public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
这个方法是有用的,以帮助找到可以打印服务MultiDoc
其中元素可以是不同的调味剂。 应用程序可以依次对每个DocFlavor
进行多次查找来执行此操作,并对结果进行整理,但查找服务可能能够更有效地执行此操作。
flavors
- 要打印的口味。
如果为null或空,则不使用此约束。
否则只返回可以打印所有指定的doc口味的多点打印服务。
attributes
- 打印服务必须支持的属性。
如果为null,则不使用此约束。
MultiDocPrintService
对象。
如果没有服务匹配,则数组为零长度。
public static final PrintService lookupDefaultPrintService()
这可能包括使用可作为Java或本地平台一部分可用的任何首选项API。 此算法可能会被用户设置属性javax.print.defaultPrinter覆盖。 必须发现指定的服务是有效的,并且当前可用作为默认值返回。
public static boolean registerServiceProvider(PrintServiceLookup sp)
sp
- 查找服务的实现。
true
如果新true
的新查找服务;
false
否则。
public static boolean registerService(PrintService service)
PrintServiceLookup
实例。
如果此服务以前未注册,并且现在已成功注册,该方法将返回true。
不应该使用StreamPrintService实例调用此方法。
他们总是无法注册,方法将返回false。
service
- 打印服务的实现。
true
如果服务是新注册的;
false
否则。
public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)
由服务提供商实现,由该类的静态方法使用。
结果应该与获取所有PrintServices并单独查询其对指定属性和风格的支持相同,但是通过利用查找服务对打印服务的功能,该过程可以更有效率。
flavor
- 所需文件。
如果为空则忽略它。
attributes
- 需要支持。
如果为null,则不使用此约束。
public abstract PrintService[] getPrintServices()
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
由服务提供商实现,由该类的静态方法使用。
找到可以肯定地确认支持属性和指定的DocFlavors组合的MultiDoc打印服务。
flavors
- 所需文件。
如果为空或为空,则忽略它。
attributes
- 需要支持。
如果为null,则不使用此约束。
public abstract PrintService getDefaultPrintService()