Module  java.desktop
软件包  javax.print

Class PrintServiceLookup



  • public abstract class PrintServiceLookup
    extends Object
    该类的实现为特定类型的打印服务(通常相当于打印机)提供查找服务。

    可以同时安装多个实现。 所有实现必须能够将定位的打印机描述为PrintService的实例。 通常,此服务类的实现将自动定位在JAR文件中(请参阅SPI JAR文件规范)。 这些类必须使用默认构造函数来实例化。 或者应用程序可以在运行时显式注册实例

    应用程序只使用这个抽象类的静态方法。 实例方法由子类中的服务提供者实现,并且所有安装的查找类的结果的统一由应用程序调用时由该类的静态方法报告。

    建议使用PrintServiceLookup实现程序来检查SecurityManager.checkPrintJobAccess()以拒绝访问不受信任的代码。 遵循此推荐政策意味着不受信任的代码可能无法找到任何打印服务。 下载的小程序是不受信任代码最常见的示例。

    这种检查是基于每个查找服务进行的,以允许策略中的灵活性来反映不同查找服务的需求。

    如果安装了安全管理器,并且其checkPrintJobAccess()方法拒绝访问,则由registerService(PrintService)注册的服务将不会包含在查找结果中。

    • 构造方法详细信息

      • PrintServiceLookup

        public PrintServiceLookup​()
    • 方法详细信息

      • lookupPrintServices

        public static final PrintService[] lookupPrintServices​(DocFlavor flavor,
                                                               AttributeSet attributes)
        找到能打印指定的打印服务DocFlavor
        参数
        flavor - 打印的味道。 如果为null,则不使用此约束。
        attributes - 打印服务必须支持的属性。 如果为null,则不使用此约束。
        结果
        匹配的数组PrintService表示支持指定风味属性的打印服务。 如果没有服务匹配,则数组为零长度。
      • lookupMultiDocPrintServices

        public static final MultiDocPrintService[] lookupMultiDocPrintServices​(DocFlavor[] flavors,
                                                                               AttributeSet attributes)
        找到能够打印包含所有指定文档风格的MultiDoc的MultiDoc打印服务。

        该方法有助于定位可以打印MultiDoc的服务,其中元素可能不同。 应用程序可以依次对每个DocFlavor进行多次查找来执行此DocFlavor ,并对结果进行整理,但查找服务可能能够更有效地执行此操作。

        参数
        flavors - 要打印的口味。 如果为null或空,则不使用此约束。 否则只返回可以打印所有指定的doc口味的多点打印服务。
        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 - 所需文件。 如果为空则忽略它。
        attributes - 需要支持。 如果为null,则不使用此约束。
        结果
        阵列匹配PrintServices。 如果没有服务匹配,则数组为零长度。
      • getPrintServices

        public abstract PrintService[] getPrintServices​()
        不被应用程序直接调用 由服务提供商实现,由该类的静态方法使用。
        结果
        该查找服务类已知的所有PrintServices的数组。 如果没有找到,则数组为零长度。
      • getMultiDocPrintServices

        public abstract MultiDocPrintService[] getMultiDocPrintServices​(DocFlavor[] flavors,
                                                                        AttributeSet attributes)
        不被应用程序直接调用

        由服务提供商实现,由该类的静态方法使用。

        找到可以肯定地确认支持属性和指定的DocFlavors组合的MultiDoc打印服务。

        参数
        flavors - 所需文件。 如果为空或为空,则忽略它。
        attributes - 需要支持。 如果为null,则不使用此约束。
        结果
        阵列匹配PrintServices。 如果没有服务匹配,则数组为零长度。
      • getDefaultPrintService

        public abstract PrintService getDefaultPrintService​()
        不被应用程序直接调用 由服务提供商实现,并由打印查找服务调用
        结果
        该查找服务的默认PrintService。 如果没有默认值,则返回null。