モジュール java.desktop
パッケージ javax.print

クラスPrintServiceLookup


  • public abstract class PrintServiceLookup
    extends Object
    このクラスの実装は、特定のタイプの印刷サービス(通常はプリンタと同義)用の検索サービスを提供します。

    複数の実装を同時にインストールできます。 すべての実装は、配置されたプリンタをPrintServiceのインスタンスとして記述できる必要があります。 通常、このサービス・クラスの実装は、自動的にJARファイル内で検出されます(SPI JARファイル仕様を参照)。 これらのクラスは、デフォルト・コンストラクタを使用してインスタンス化可能である必要があります。 別の方法として、実行時にアプリケーションがインスタンスを明示的に登録することも可能です。

    アプリケーションは、この抽象クラスのstaticメソッドのみを使用します。 インスタンス・メソッドは、サービス・プロバイダによりサブクラス内で実装されます。また、インストール済のルックアップ・クラスすべての結果の統合が、アプリケーションによる呼出し時に、このクラスのstaticメソッドにより報告されます。

    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)
        指定されたすべてのdocフレーバを含むMultiDocsを印刷できるMultiDoc print Servicesを検索します。

        このメソッドは、MultiDocの印刷が可能なサービスの検出に有用です。MultiDoc内では、要素のフレーバが異なってもかまいません。 アプリケーションは、各DocFlavorに対して複数のルックアップを次々に実行し、結果を照合することで同じ処理を実行できますが、ルックアップ・サービスを使用するとより効率的に実行できます。

        パラメータ:
        flavors - 印刷するフレーバ。 nullまたはemptyの場合、この制約は使用されません。 それ以外の場合、指定されたdocフレーバをすべて印刷可能な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の組み合わせをサポートすることが確実に確認できるサービスを特定します。 このメソッドが、アプリケーションから直接呼び出されることはありません。

        サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。

        結果は、すべてのPrintServicesを取得し、指定された属性とフレーバをサポートするかどうかを個別に問合せするのと同じにする必要がありますが、印刷サービスのルックアップ・サービスの機能を利用すると効率的です。

        パラメータ:
        flavor - 必須ドキュメントのフレーバ。 nullの場合は無視されます。
        attributes - サポートされる必要のある属性。 nullの場合、この制約は使用されません。
        戻り値:
        一致するPrintServicesの配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
      • getPrintServices

        public abstract PrintService[] getPrintServices()
        アプリケーションから直接呼び出されることはありません。 サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。
        戻り値:
        このルックアップ・サービス・クラスに知られているすべてのPrintServicesの配列。 存在しない場合、配列の長さはゼロになる。
      • getMultiDocPrintServices

        public abstract MultiDocPrintService[] getMultiDocPrintServices​(DocFlavor[] flavors,
                                                                        AttributeSet attributes)
        アプリケーションから直接呼び出されることはありません。

        サービス・プロバイダにより実装され、このクラスのstaticメソッドにより使用されます。

        属性とDocFlavorsの組み合わせをサポートすることが確実に確認できるMultiDocプリント・サービスを特定します。

        パラメータ:
        flavors - 必須ドキュメントのフレーバ。 nullまたは空の場合は無視されます。
        attributes - サポートされる必要のある属性。 nullの場合、この制約は使用されません。
        戻り値:
        一致するPrintServicesの配列。 一致するサービスが存在しない場合、配列の長さはゼロになる。
      • getDefaultPrintService

        public abstract PrintService getDefaultPrintService()
        アプリケーションから直接呼び出されることはありません。 サービス・プロバイダがこれを実装し、印刷ルックアップ・サービスが呼び出します。
        戻り値:
        このルックアップ・サービスのデフォルトのPrintService デフォルト値がない場合は、nullを返します。