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

インタフェースPrintService

  • 既知のすべてのサブインタフェース:
    MultiDocPrintService
    既知のすべての実装クラス:
    StreamPrintService


    public interface PrintService
    PrintServiceインタフェースは、DocPrintJobのファクトリです。 PrintServiceは、Printerの機能を記述します。また、プリンタがサポートする属性に関する照会を実行できます。

    例:

    
       DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
       PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
       aset.add(MediaSizeName.ISO_A4);
       PrintService[] pservices =
                     PrintServiceLookup.lookupPrintServices(flavor, aset);
       if (pservices.length > 0) {
           DocPrintJob pj = pservices[0].createPrintJob();
           try {
               FileInputStream fis = new FileInputStream("test.ps");
               Doc doc = new SimpleDoc(fis, flavor, null);
               pj.print(doc, aset);
            } catch (FileNotFoundException fe) {
            } catch (PrintException e) {
            }
       }
       
    • メソッドの詳細

      • getName

        String getName​()
        この印刷サービスのString名を返します。アプリケーションは、これを使用して特定の印刷サービスを要求できます。 ネーム・サービスなどの適切なコンテキストでは、この名前は一意である必要があります。 環境によっては、この一意の名前を、PrinterName属性として定義されたわかりやすいプリンタ名と同じにできます。
        戻り値:
        サービスの名前
      • createPrintJob

        DocPrintJob createPrintJob​()
        サポートするどれかのドキュメント・フレーバのデータを処理可能なPrintJobを作成して返します。
        戻り値:
        DocPrintJobオブジェクト
      • getAttributes

        PrintServiceAttributeSet getAttributes​()
        この印刷サービスのプリンタ記述属性セットを取得します。プリンタ記述属性セットは、このPrint Serviceの状態を指定します。 返される属性セット・オブジェクトは変更できません。 返される属性セット・オブジェクトは、この印刷サービスの属性セットのgetAttributes()メソッド呼出し時の「スナップショット」です。つまり、この印刷サービスの属性セットの内容が将来変更されても、返される属性セットの内容は更新されません 属性値の変更を検出するには、getAttributes()を再度呼び出して、新規属性セットを以前の属性セットと比較します。もう1つの方法として、印刷サービス・イベントのリスナーを登録することもできます。
        戻り値:
        このPrint Serviceの属性セットの変更不可能なスナップショット。 空でも良いがnullであってはならない
      • getAttribute

        <T extends PrintServiceAttribute> T getAttribute​(Class<T> category)
        指定された単一のサービス属性の値を取得します。 これは、クライアントが1つの属性の値のみを必要としており、オーバーヘッドを最小限に抑えようとする場合に有用です。
        型パラメータ:
        T - 指定されたサービス属性の型
        パラメータ:
        category - この印刷サービスのサポートするPrintServiceAttribute - nullに設定することはできない。
        戻り値:
        サポートされる属性の値、または、属性がこのサービスでサポートされない場合はnull
        例外:
        NullPointerException - カテゴリがnullの場合。
        IllegalArgumentException - 非チェック例外。categoryPrintServiceAttributeインタフェースを実装するClassではない場合。
      • getSupportedDocFlavors

        DocFlavor[] getSupportedDocFlavors​()
        このPrintService用のジョブ設定時に、クライアントが指定可能な印刷データ形式を判定します。 印刷データ形式は、MIMEタイプおよび印刷データ表現クラスで構成される「docフレーバ」(DocFlavorクラス)により表されます。

        docフレーバの中には、すべての属性と組み合わせることのできないものもあります。 getUnsupportedAttributes(..)を使用して、特定の組み合わせを検証してください。

        戻り値:
        サポートされるdocフレーバの配列。配列は、1つ以上の要素を保持する必要がある
      • isDocFlavorSupported

        boolean isDocFlavorSupported​(DocFlavor flavor)
        この印刷サービスが特定のDocFlavorをサポートするかどうかを判定します。 このメソッドを使用して、DocFlavorgetSupportedDocFlavors()の結果のメンバーかどうかを判別できます。

        docフレーバの中には、すべての属性と組み合わせることのできないものもあります。 getUnsupportedAttributes(..)を使用して、特定の組み合わせを検証してください。

        パラメータ:
        flavor - サポートを照会するDocFlavor
        戻り値:
        この印刷サービスが指定されたDocFlavorをサポートする場合はtrue、サポートしない場合はfalse
        例外:
        NullPointerException - 非チェック例外。flavorがnullの場合にスローされる。
      • getSupportedAttributeCategories

        Class<?>[] getSupportedAttributeCategories​()
        この印刷サービスのジョブ設定時に、クライアントが指定可能な印刷属性カテゴリを判別します。 印刷属性カテゴリは、Attributeインタフェースを実装するClassによって指定されます。 このメソッドは、サポートする属性カテゴリだけを返し、サポートする特定の属性は返しません。

        このメソッドは、実行可能なすべてのジョブでこの印刷サービスがサポートする印刷属性カテゴリすべてを返します。 特定のコンテキスト(つまり、特定のDocFlavor)では、一部のカテゴリがサポートされない可能性があります。 送信前に、getSupportedAttributeValues(..)など、DocFlavorを含むいずれかのメソッドを使用して要求を検証してください。

        戻り値:
        クライアントが、Print Request内でdocレベルまたはジョブ・レベルの属性として指定可能な印刷属性カテゴリの配列。 配列内の各要素は、Attributeインタフェースを実装するClassになる。 サポートするカテゴリが存在しない場合、配列は空になる。
      • isAttributeCategorySupported

        boolean isAttributeCategorySupported​(Class<? extends Attribute> category)
        この印刷サービスのジョブ設定時に、クライアントが特定の印刷属性カテゴリを指定可能かどうかを判別します。 印刷属性カテゴリは、Attributeインタフェースを実装するClassによって指定されます。 このメソッドは、属性カテゴリがサポートされるかどうかを示し、特定の属性がサポートされるかどうかは示しません。

        特定のコンテキスト(つまり、特定のDocFlavor)では、一部のカテゴリがサポートされない可能性があります。 送信前に、getSupportedAttributeValues(..)など、DocFlavorを含むいずれかのメソッドを使用して要求を検証してください。

        このメソッドを使用して、カテゴリがgetSupportedAttributeCategories()の結果のメンバーかどうかを判別できます。

        パラメータ:
        category - テスト対象の印刷属性カテゴリ。 Attributeインタフェースを実装するClassでなければならない。
        戻り値:
        この印刷サービスが、Print Requestのcategory内のdocレベルまたはジョブ・レベルの属性指定をサポートする場合はtrue、サポートしない場合はfalse
        例外:
        NullPointerException - 非チェック例外。categoryがnullの場合にスローされる。
        IllegalArgumentException - 非チェック例外。categoryAttributeインタフェースを実装するClassではない場合にスローされる。
      • getDefaultAttributeValue

        Object getDefaultAttributeValue​(Class<? extends Attribute> category)
        この印刷サービスの指定されたカテゴリ内でのデフォルト印刷属性値を判別します。 印刷属性値は、Attributeインタフェースを実装するクラスのインスタンスです。 クライアントが印刷ジョブを設定し、かつ指定されたカテゴリ内の属性値を指定しない場合、Print Serviceはデフォルト属性値を使用します。

        特定のコンテキスト(つまり、特定のDocFlavor)では、サポートされない属性も存在します。 送信前に、getSupportedAttributeValues(..)など、DocFlavorを含むいずれかのメソッドを使用して要求を検証してください。

        すべての属性がデフォルト値を保持するわけではありません。 たとえば、サービスはRequestingUserのデフォルト値を保持しません。つまり、サポートされるカテゴリでnullが返される場合、そのカテゴリのサービスのデフォルト値は存在しないことになります。 これに当てはまる場合を見分けるには、isAttributeCategorySupported(Class)を使用してください。

        パラメータ:
        category - デフォルト属性値が要求される印刷属性カテゴリ。 これは、Attributeインタフェースを実装するClassである必要があります。
        戻り値:
        categoryのデフォルト属性値、またはnull (このPrint Serviceが、Print Requestのcategory内のdocレベルまたはジョブ・レベルの属性指定をサポートしないか、サービスがこの属性のデフォルト値を保持しない場合)。
        例外:
        NullPointerException - 非チェック例外。categoryがnullの場合にスローされる。
        IllegalArgumentException - 非チェック例外。categoryAttributeインタフェースを実装するClassでない場合にスローされる。
      • getSupportedAttributeValues

        Object getSupportedAttributeValues​(Class<? extends Attribute> category,
                                           DocFlavor flavor,
                                           AttributeSet attributes)
        この印刷サービス用のジョブ設定時に、クライアントが特定のカテゴリ内で指定可能な印刷属性値を判別します。 印刷属性値は、Attributeインタフェースを実装するクラスのインスタンスです。

        flavorがnullで、attributesがnullまたは空のセットの場合、このメソッドは、実行可能なすべてのジョブでこのPrint Serviceがサポートする印刷属性値すべてを返します。 flavorがnullでないか、attributesが空のセットではない場合、このメソッドは指定されたdocフレーバや属性セットと互換性のある印刷属性値のみを返します。 つまり、戻り値nullは、この属性指定が指定されたDocFlavorと互換性がないことを示す場合があります。 また、DocFlavorがnullでない場合、このPrintServiceがサポートするフレーバである必要があります。それ以外の場合、IllegalArgumentExceptionがスローされます。

        attributesパラメータに含まれるAttributeのカテゴリが、categoryパラメータと同じ場合、サービスはAttributeSet内でこの属性を無視する必要があります。

        コンテキストを正確に表現するために、Doc上で指定するDocAttributeをこのセットに含める必要があります。

        このメソッドは、Objectを返します。印刷属性カテゴリが異なると、サポートされる属性値が異なる方法で示されるためです。 javax.print.attribute.standardパッケージ内の各印刷属性のドキュメントには、各属性がサポートする値を示す方法が記載されています。 サポートの表示方法を、次に示します。

        • 属性カテゴリの単一インスタンスを返して、任意の値が許容されることを示す。 これは、任意のテキスト文字列を値に持つことのできる属性などで使用される(返される属性オブジェクトの値は無関係)
        • 正当な値を含む、属性カテゴリの1つ以上のインスタンスの配列を返す。これは、列挙値のリストを保持する属性などで使用される。 配列のタイプは、getCategory(Class)により返される、指定された属性カテゴリ・タイプの配列になる。
        • 正当な値の境界を示す(属性カテゴリ以外のクラスの)単一のオブジェクトを返す。これは、特定の範囲内に存在する必要のある整数値属性などで使用される
        パラメータ:
        category - テスト対象の印刷属性カテゴリ。 これは、Attributeインタフェースを実装するClassである必要があります。
        flavor - 想定されるジョブのdocフレーバ、またはnull。
        attributes - 想定されるジョブの印刷属性のセット(ジョブ・レベル属性とドキュメント・レベル属性の両方)、またはnull。
        戻り値:
        categoryでサポートされる値を示すオブジェクト、またはnull (このPrint ServiceがPrint Requestのcategory内でdocレベルまたはジョブ・レベルの属性指定をサポートしない場合)。
        例外:
        NullPointerException - 非チェック例外。categoryがnullの場合にスローされる。
        IllegalArgumentException - 非チェック例外。categoryAttributeインタフェースを実装するClassではない場合、またはこのサービスがDocFlavorをサポートしない場合にスローされる。
      • isAttributeValueSupported

        boolean isAttributeValueSupported​(Attribute attrval,
                                          DocFlavor flavor,
                                          AttributeSet attributes)
        このPrint Service用のジョブ設定時に、クライアントが特定の印刷属性値を指定可能かどうかを判別します。 印刷属性値は、Attributeインタフェースを実装するクラスのインスタンスです。

        flavorがnullであるか、attributesがnullまたは空のセットである場合、このメソッドは、docフレーバと属性セットの可能な組み合わせで、指定された印刷属性値をこのPrint Serviceがサポートするかどうかを示します。 flavorがnullでないか、attributesが空のセットではない場合、このメソッドは、このPrint Serviceが、指定されたdocフレーバや属性セットと組み合わせて、指定された印刷属性値をサポートするかどうかを示します。

        また、DocFlavorがnullでない場合、このPrintServiceがサポートするフレーバである必要があります。それ以外の場合、IllegalArgumentExceptionがスローされます。

        コンテキストを正確に表現するために、Doc上で指定するDocAttributeをこのセットに含める必要があります。

        このメソッドを使用して、値がgetSupportedAttributeValues(...)の結果のメンバーかどうかを判別できます。

        パラメータ:
        attrval - テスト対象の印刷属性値。
        flavor - 想定されるジョブのdocフレーバ、またはnull。
        attributes - 想定されるジョブの印刷属性のセット(ジョブ・レベル属性とドキュメント・レベル属性の両方)、またはnull。
        戻り値:
        このPrint Serviceで、Print Request内のdocレベルまたはジョブ・レベル属性としてattrvalを指定可能な場合はtrue、そうでない場合はfalse。
        例外:
        NullPointerException - 非チェック例外。attrvalがnullの場合。
        IllegalArgumentException - フレーバがこのPrintServiceでサポートされない場合。
      • getUnsupportedAttributes

        AttributeSet getUnsupportedAttributes​(DocFlavor flavor,
                                              AttributeSet attributes)
        特定のDocFlavorのコンテキスト内の印刷要求でサポートされない属性を識別します。 このメソッドは、実行される可能性のある印刷ジョブの妥当性を検証したり、サポート不可能な特定の属性を識別する場合に役立ちます。 指定するのはサポートされるDocFlavorのみにすることが重要です。サポートされないものを指定するとIllegalArgumentExceptionがスローされます。 このメソッドの戻り値がnullの場合、すべての属性がサポートされます。

        コンテキストを正確に表現するために、Doc上で指定するDocAttributeをこのセットに含める必要があります。

        戻り値がnull以外の場合、このDocFlavorでは、返されるセット内のすべての属性がサポートされません。 返されるセットは、サポートされない属性カテゴリとサポートされない属性値とを区別しません。

        サポートされる印刷要求は、DocFlavorがサポートされない場合を除き、元の属性セットからサポートされない属性をすべて削除して作成できます。

        ほかの属性と競合しているだけの理由で属性がサポートされない場合、競合の原因として識別される属性の選択は、サービスに任されます。

        isDocFlavorSupported()を使用して、DocFlavorがサポートされていることを確認してから、このメソッドを呼び出してください。

        パラメータ:
        flavor - テスト対象のdocフレーバ、またはnull
        attributes - 想定されるジョブの印刷属性のセット(ジョブ・レベル属性とドキュメント・レベル属性の両方)、またはnull。
        戻り値:
        このPrint Serviceが印刷要求仕様をサポートする場合はnull、それ以外の場合はサポートされない属性
        例外:
        IllegalArgumentException - flavorがこのPrintServiceでサポートされない場合。
      • getServiceUIFactory

        ServiceUIFactory getServiceUIFactory​()
        さまざまなロールのサービスとの対話処理をユーザーに提供するUIコンポーネントのファクトリを返します。 UIを一切提供しないサービスは、nullを返す必要があります。 UIを提供するが、UIをサポートしない環境での利用を想定しているPrint Serviceは、アプリケーションがこのメソッドを呼び出してファクトリを取得しない限り、ファクトリが初期化されないようにする必要があります。 詳細は、ServiceUIFactoryを参照してください。
        戻り値:
        nullまたはUIコンポーネントのファクトリ
      • equals

        boolean equals​(Object obj)
        2つのサービスが同じ基本サービスを参照しているかどうかを判別します。 印刷サービスをカプセル化する複数のオブジェクトは、同一の基本サービスを参照する場合でも、参照が等しいことを示すことはできません。

        クライアントは、このメソッドを呼び出して、2つのサービスが同一の基本サービスを参照しているかどうかを判別する必要があります。

        サービスは、このメソッドを実装して、比較対象のサービス・オブジェクトがクライアントにより交互に使用可能である場合にだけtrueを返す必要があります。 この場合、サービスは同じオブジェクト参照を基本サービスに自由に返すことができますが、クライアントは参照が等しいことに依存してはいけません。

        オーバーライド:
        equals、クラス: Object
        パラメータ:
        obj - 比較対象の参照オブジェクト。
        戻り値:
        このサービスがobj引数と同じである場合はtrue、そうでない場合はfalse
        関連項目:
        Object.hashCode(), HashMap