JavaTM 2 Platform
Standard Ed. 5.0

javax.print
インタフェース PrintService

既知のサブインタフェースの一覧:
MultiDocPrintService
既知の実装クラスの一覧:
StreamPrintService

public interface PrintService

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

例:

   DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
   PrintRequestAttributeSet aset = new HashPrintRequestHashAttributeSet();
   aset.add(MediaSizeName.ISO_A4);
   PrintService[] pservices =
                 PrintServiceLookup.lookupPrintServices(flavor, aset);
   if (pservices.length > 0) {
       DocPrintJob pj = pservices[0].createPrintJob();
       // InputStreamDoc is an implementation of the Doc interface //
       Doc doc = new InputStreamDoc("test.ps", flavor);
       try {
             pj.print(doc, aset);
        } catch (PrintException e) {
        }
   }
   


メソッドの概要
 void addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
          この PrintService にイベントのリスナーを登録します。
 DocPrintJob createPrintJob()
          サポートされた任意のドキュメントフレーバのデータを処理可能な PrintJob を作成して返します。
 boolean equals(Object obj)
          2 つのサービスが同じ基本サービスを参照しているかどうかを判別します。
<T extends PrintServiceAttribute>
T
getAttribute(Class<T> category)
          指定された単一のサービス属性の値を取得します。
 PrintServiceAttributeSet getAttributes()
          この印刷サービスのプリンタ記述属性セットを取得します。
 Object getDefaultAttributeValue(Class<? extends Attribute> category)
          この印刷サービスの指定されたカテゴリ内でのデフォルト印刷属性値を判別します。
 String getName()
          この印刷サービスの String 名を返します。
 ServiceUIFactory getServiceUIFactory()
          さまざまなロールのサービスとの対話処理をユーザに提供する UI コンポーネントのファクトリを返します。
 Class<?>[] getSupportedAttributeCategories()
          この印刷サービスのジョブ設定時に、クライアントが指定可能な印刷属性カテゴリを判別します。
 Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes)
          この印刷サービス用のジョブ設定時に、クライアントが特定のカテゴリ内で指定可能な印刷属性値を判別します。
 DocFlavor[] getSupportedDocFlavors()
          この PrintService 用のジョブ設定時に、クライアントが指定可能な印刷データ形式を判別します。
 AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes)
          特定の DocFlavor のコンテキスト内の印刷要求でサポートされない属性を識別します。
 int hashCode()
          このメソッドの実装には、equals(Object) を一貫して使用する必要があります。
 boolean isAttributeCategorySupported(Class<? extends Attribute> category)
          この印刷サービスのジョブ設定時に、クライアントが特定の印刷属性カテゴリを指定可能かどうかを判別します。
 boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)
          この Print Service 用のジョブ設定時に、クライアントが特定の印刷属性値を指定可能かどうかを判別します。
 boolean isDocFlavorSupported(DocFlavor flavor)
          この印刷サービスが特定の DocFlavor をサポートするかどうかを判別します。
 void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
          この印刷サービスから印刷サービスリスナーを削除します。
 

メソッドの詳細

getName

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

戻り値:
サービスの名前

createPrintJob

DocPrintJob createPrintJob()
サポートされた任意のドキュメントフレーバのデータを処理可能な PrintJob を作成して返します。

戻り値:
DocPrintJob オブジェクト

addPrintServiceAttributeListener

void addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
この PrintService にイベントのリスナーを登録します。

パラメータ:
listener - 印刷サービスの状態を監視する PrintServiceAttributeListener
関連項目:
removePrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener)

removePrintServiceAttributeListener

void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
この印刷サービスから印刷サービスリスナーを削除します。これは、以後、リスナーが PrintService イベントに関与しないことを意味します。

パラメータ:
listener - PrintServiceAttributeListener オブジェクト
関連項目:
addPrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener)

getAttributes

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

戻り値:
この Print Service の属性セットの変更不可能なスナップショット。空でも良いが null であってはならない

getAttribute

<T extends PrintServiceAttribute> T getAttribute(Class<T> category)
指定された単一のサービス属性の値を取得します。これは、クライアントが 1 つの属性値だけを必要とし、オーバーヘッドを最小限に抑える場合に有用です。

パラメータ:
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 パッケージ内の各印刷属性のドキュメントには、各属性がサポートする値を示す方法が記載されています。サポートの表示方法を、以下に示します。

パラメータ:
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 を返す必要があります。この場合、サービスは同じオブジェクト参照を基本サービスに自由に返すことができますが、クライアントは参照が等しいことに依存してはなりません。

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

hashCode

int hashCode()
このメソッドの実装には、equals(Object) を一貫して使用する必要があります。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。