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

インタフェースPrintService

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

    public interface PrintService
    インタフェースPrintServiceは、DocPrintJobのファクトリです。 PrintServiceはプリンタの機能を記述し、プリンタがサポートしている属性について問い合わせることができます。

    例:

    
       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()
        このプリント・サービスの文字列名を返します。この文字列名は、アプリケーションが特定のプリント・サービスをリクエストするために使用することができます。 ネーム・サービスなどの適切なコンテキストでは、この名前は一意である必要があります。 環境によっては、この一意の名前を、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 - categoryがインタフェースPrintServiceAttributeを実装する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 - flavornullである場合
      • getSupportedAttributeCategories

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

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

        戻り値:
        クライアントが印刷リクエストの文書レベルまたはジョブ・レベルの属性として指定できる印刷属性カテゴリの配列。 配列内の各要素は、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 - categorynullの場合
        IllegalArgumentException - categoryがインタフェースAttributeを実装するClassでない場合
      • getDefaultAttributeValue

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

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

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

        パラメータ:
        category - デフォルトの属性値がリクエストされている印刷属性カテゴリ。 これは、Attributeインタフェースを実装するClassである必要があります。
        戻り値:
        categoryのデフォルト属性値、またはnullこの印刷サービスが、印刷リクエストのcategoryに文書レベルまたはジョブ・レベルの属性を指定することをサポートしていない場合、またはサービスがこの属性のデフォルト値を持たない場合
        例外:
        NullPointerException - categorynullの場合
        IllegalArgumentException - categoryがインタフェースAttributeを実装するClassでない場合
      • getSupportedAttributeValues

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

        flavornullであり、attributesnullであるか空のセットである場合、このメソッドはこのPrint Serviceがサポートするすべての印刷属性値を返します。 flavornullでないか、またはattributesが空のセットでない場合、このメソッドは、指定されたdocフレーバおよび/または属性セットと互換性のある印刷属性値を返します。 つまり、nullの戻り値は、この属性の指定が指定されたDocFlavorと互換性がないことを示している可能性があります。 また、DocFlavornullでない場合は、このPrintServiceでサポートされているバーでなければなりません。それ以外の場合はIllegalArgumentExceptionがスローされます。

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

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

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

        • 属性カテゴリの単一インスタンスを返して、任意の値が許容されることを示す。 これは、任意のテキスト文字列を値に持つことのできる属性などで使用される(返される属性オブジェクトの値は無関係)
        • 正当な値を含む、属性カテゴリの1つ以上のインスタンスの配列を返す。これは、列挙値のリストを保持する属性などで使用される。 配列のタイプは、getCategory(Class)により返される、指定された属性カテゴリ・タイプの配列になる。
        • 正当な値の境界を示す(属性カテゴリ以外のクラスの)単一のオブジェクトを返す。これは、特定の範囲内に存在する必要のある整数値属性などで使用される

        パラメータ:
        category - テストする印刷属性カテゴリ。 これは、Attributeインタフェースを実装するClassである必要があります。
        flavor - 想定されているジョブのdocバー、またはnull
        attributes - 想定ジョブ(ジョブ・レベル属性と文書レベル属性の両方)、またはnullの印刷属性のセット
        戻り値:
        category、またはnullのサポートされている値を示すオブジェクトこの印刷サービスで、印刷リクエストのcategoryにdocレベルまたはジョブ・レベルの属性を指定することがサポートされていない場合
        例外:
        NullPointerException - categorynullの場合
        IllegalArgumentException - categoryAttributeインタフェースを実装するClassでない場合、またはDocFlavorがこのサービスでサポートされていない場合
      • isAttributeValueSupported

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

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

        また、DocFlavornullでない場合は、このPrintServiceでサポートされているバーでなければなりません。それ以外の場合はIllegalArgumentExceptionがスローされます。

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

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

        パラメータ:
        attrval - テストする属性値を出力
        flavor - 想定されているジョブのdocバー、またはnull
        attributes - 想定ジョブ(ジョブ・レベル属性と文書レベル属性の両方)、またはnullの印刷属性のセット
        戻り値:
        trueこの印刷サービスが、印刷リクエストでdocレベルまたはジョブ・レベルの属性としてattrvalを指定することをサポートする場合はfalse、そうでない場合はfalse
        例外:
        NullPointerException - attrvalnullの場合
        IllegalArgumentException - flavorがこのPrintServiceでサポートされていない場合
      • getUnsupportedAttributes

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

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

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

        DocFlavorがサポートされていない場合を除き、元の属性セットからサポートされていないすべての属性を削除することで、サポートされている印刷リクエストを作成できます。

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

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

        パラメータ:
        flavor - テストするdocフレーバ、またはnull
        attributes - 想定ジョブ(ジョブ・レベル属性と文書レベル属性の両方)、またはnullの印刷属性のセット
        戻り値:
        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