モジュール 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フレーバすべてを含むMultiDocを印刷可能なMultiDoc印刷サービスを検出します。

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

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

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

        結果は、すべてのPrintServiceを取得して、指定された属性およびフレーバのサポートを個別に照会する場合と同じになります。ただし、印刷サービスのルックアップ・サービス機能を活用する方が、より効率的な処理が可能になります。

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

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

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

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

        指定された属性とDocFlavorの組み合わせをサポートすることを明確に確認可能な、MultiDoc印刷サービスを検出します。

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

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