- java.lang.Object
-
- javax.print.PrintServiceLookup
-
public abstract class PrintServiceLookup extends Object
此类的实现为特定类型的打印服务(通常等同于打印机)提供查找服务。可以同时安装多个实现。 所有实现必须能够将所定位的打印机描述为
PrintService
实例。 通常,此服务类的实现自动位于JAR文件中(请参阅SPI JAR文件规范)。 这些类必须使用默认构造函数进行实例化。 或者,应用程序可以在运行时显式注应用程序仅使用此抽象类的静态方法。 实例方法由子类中的服务提供者实现,并且当应用程序调用时,此类的静态方法会报告所有已安装查找类的结果的统一。
建议使用
PrintServiceLookup
实现程序检查SecurityManager.checkPrintJobAccess()
是否拒绝访问不受信任的代码。 遵循此建议策略意味着不受信任的代码可能无法找到任何打印服务。 下载的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)
找到可以肯定确认的服务,以支持指定的属性和DocFlavors
的组合。static PrintService
lookupDefaultPrintService()
找到此环境的默认打印服务。static MultiDocPrintService[]
lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
MultiDoc
打印服务
能够打印MultiDocs
包含所有指定的docMultiDocs
。static PrintService[]
lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
找到能够打印指定的DocFlavor
的打印服务。static boolean
registerService(PrintService service)
允许应用程序直接注册实现打印服务的类的实例。static boolean
registerServiceProvider(PrintServiceLookup sp)
允许应用程序显式注册实现查找服务的类。
-
-
-
方法详细信息
-
lookupPrintServices
public static final PrintService[] lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
找到能够打印指定的DocFlavor
的打印服务。- 参数
-
flavor
- 要打印的味道。 如果是null
,则不使用此约束。 -
attributes
- 打印服务必须支持的属性。 如果未使用null
此约束。 - 结果
-
匹配
PrintService
对象的数组,表示支持指定flavor属性的打印服务。 如果没有服务匹配,则数组为零长度。
-
lookupMultiDocPrintServices
public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
MultiDoc
打印服务
能够打印MultiDocs
包含所有指定的docMultiDocs
。此方法有助于查找可以打印
MultiDoc
的服务,其中元素可能是不同的风格。 应用程序可以通过依次对每个DocFlavor
进行多次查找并对结果进行整理来执行此操作,但查找服务可能能够更有效地执行此操作。- 参数
-
flavors
- 要打印的味道。 如果未使用null
或清空此约束。 否则只返回可以打印所有指定doc flavor的multidoc打印服务。 -
attributes
- 打印服务必须支持的属性。 如果未使用null
此约束。 - 结果
-
匹配
MultiDocPrintService
对象的数组。 如果没有服务匹配,则数组为零长度。
-
lookupDefaultPrintService
public static final PrintService lookupDefaultPrintService()
找到此环境的默认打印服务。 这可能会返回null
。 如果多个查找服务均指定了默认值,则未精确定义所选服务,但通常会返回平台本机服务而非已安装服务作为默认值。 如果没有可清楚识别的平台本机默认打印服务,则默认是第一个以依赖于实现的方式定位。这可能包括使用作为Java或本机平台一部分提供的任何首选项API。 设置属性
javax.print.defaultPrinter
的用户可以覆盖此算法。 必须发现指定的服务有效,并且当前可以作为默认值返回。- 结果
-
默认值
PrintService
-
registerServiceProvider
public static boolean registerServiceProvider(PrintServiceLookup sp)
允许应用程序显式注册实现查找服务的类。 注册不会在VM调用中持续存在。 如果应用程序需要提供不属于安装的新服务,这将非常有用。 如果查找服务已经注册,或者无法注册,则该方法返回false
。- 参数
-
sp
- 查找服务的实现 - 结果
-
true
如果新注册了新的查找服务; 否则为false
-
registerService
public static boolean registerService(PrintService service)
允许应用程序直接注册实现打印服务的类的实例。 该服务的查找操作将由PrintServiceLookup
类使用服务报告的属性值和类来执行。 这可能不如为该服务调整的查找服务有效。 因此,建议改为注册PrintServiceLookup
实例。 如果此服务先前未注册且现已成功注册,则该方法返回true
。 不应使用StreamPrintService
实例调用此方法。 他们将始终无法注册,该方法将返回false
。- 参数
-
service
- 打印服务的实现 - 结果
-
true
服务是否新注册; 否则为false
-
getPrintServices
public abstract PrintService[] getPrintServices(DocFlavor flavor, AttributeSet attributes)
找到可以肯定确认的服务,以支持指定的属性和DocFlavors
的组合。 应用程序不直接调用此方法。由服务提供者实现,由此类的静态方法使用。
结果应该与获取所有
PrintServices
相同,并且在支持指定的属性和风格时单独查询每个结果,但通过利用打印服务的查找服务功能,该过程可以更高效。- 参数
-
flavor
- 所需文件。 如果null
被忽略。 -
attributes
- 需要支持。 如果未使用null
此约束。 - 结果
-
匹配的数组
PrintServices
。 如果没有服务匹配,则数组为零长度。
-
getPrintServices
public abstract PrintService[] getPrintServices()
不是由应用程序直接调用。 由服务提供者实现,由此类的静态方法使用。- 结果
-
此查找服务类已知的所有
PrintServices
数组。 如果没有找到,则数组为零长度。
-
getMultiDocPrintServices
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors, AttributeSet attributes)
不是由应用程序直接调用。由服务提供者实现,由此类的静态方法使用。
MultiDoc
可以肯定确认的MultiDoc
打印服务,以支持指定的属性和DocFlavors
的组合。- 参数
-
flavors
- 所需文件。 如果null
或为空则忽略它。 -
attributes
- 需要支持。 如果未使用null
此约束。 - 结果
-
匹配数组
PrintServices
。 如果没有服务匹配,则数组为零长度。
-
getDefaultPrintService
public abstract PrintService getDefaultPrintService()
不是由应用程序直接调用。 由服务提供者实现,并由打印查找服务调用。- 结果
-
此查找服务的默认
PrintService
。 如果没有默认值,则返回null
。
-
-