模块  java.desktop
软件包  javax.print

Class PrintServiceLookup


  • public abstract class PrintServiceLookupextends Object
    此类的实现为特定类型的打印服务(通常等同于打印机)提供查找服务。

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

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

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

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

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

    • 构造方法详细信息

      • PrintServiceLookup

        public PrintServiceLookup()
    • 方法详细信息

      • 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包含所有指定的doc MultiDocs

        此方法有助于查找可以打印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