|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface Doc
Doc インタフェースは、Print Job 用印刷データの一部を提供するオブジェクトに対するインタフェースを指定します。「Doc」とは、「印刷データの一部」を意味する、短く発音しやすい用語です。クライアントは Print Job に Doc インタフェースを実装するオブジェクトを渡し、Print Job はオブジェクトに対してメソッドを呼び出して印刷データを取得します。Doc インタフェースを使用することで、Print Job は次の操作が実行可能になります。
DocFlavor
クラス) を判別する。doc フレーバは、印刷データ形式 (MIME タイプ) および印刷データの送信元オブジェクトの表現クラスを指す
javax.print.attribute
内で定義される。doc は、javax.print.attribute.DocAttributeSet
内に格納された出力属性を返す
Doc インタフェースの実装内の各メソッドでは、メソッドの呼び出しで常に同じオブジェクトを返すことが許可されます。これは、Print Job または doc オブジェクトのほかの呼び出し側の場合、呼び出し側が印刷データを取得する際、ストリームである印刷データ表現オブジェクトなどの印刷データを「消費する」ことを示します。Print Job が
を呼び出してストリームを取得したあとに getPrintData()
を呼び出すと、すでに読み込み中の同じストリームオブジェクトが返されます。印刷データをもう一度最初から読み込む新規ストリームオブジェクトが返されることはありません。このような動作を実行する doc オブジェクトを指定すると、doc オブジェクトの実装を簡略化できます。これは、特定の doc が 1 つの Print Job (複数の異なる Print Job ではなく) に印刷データを送信することを考えると、理にかなっています (同一の印刷データを複数の異なる Print Job に送信する場合は、1 つの印刷データソースの最上位に複数の異なる doc オブジェクトを作成する必要がある)。
getPrintData()
Doc インタフェースでは、実装にかなり柔軟性を持たせることができます。doc オブジェクトの構築時には、印刷データがすでに存在している場合があります。この場合、doc のメソッドにより返されるオブジェクトを doc のコンストラクタに提供し、前もって doc 内に格納しておくことで、呼び出し時にそのまま返すだけで済みます。また、doc オブジェクトの構築時に印刷データが存在していない場合もあります。この場合、doc オブジェクトは「レイジー」実装を提供できます。Print Job が
メソッドを呼び出すと、「レイジー」実装は印刷データ表現オブジェクト (や印刷データ) を生成します。
getPrintData()
1 つの doc に同時アクセス可能なクライアントスレッド数に制限はありません。このため、Doc インタフェースの実装はすべて、複数のスレッドに対して安全であるように設計する必要があります。
ただし、Doc から取得された印刷データのコンシューマは 1 つでなければなりません。
Doc の getReaderForText()
や getStreamForBytes()
メソッドを呼び出す、または印刷データソースが InputStream または Reader 内に存在するために、印刷データがクライアントからストリームとして取得される場合、印刷サービスはどのジョブ完了条件の場合にもクライアントに対してこれらのストリームを常に閉じる必要があります。次の点に注意してください。印刷データ自体がストリームの場合、サービスは常に印刷データを閉じます。印刷データが別の方法でストリームとして要求可能で、終了前にストリームを取得済みの場合、サービスはストリームを閉じるだけです。つまり、印刷サービスがデータをストリームとして要求する可能性があるということだけで、ストリームを閉じるサービスを利用する Doc 実装者がサービスからの要求に応答してストリームを作成しなければならないわけではありません。
メソッドの概要 | |
---|---|
DocAttributeSet |
getAttributes()
この doc オブジェクトの印刷属性セットを取得します。 |
DocFlavor |
getDocFlavor()
この doc オブジェクトが印刷データの一部を提供する doc フレーバを判別します。 |
Object |
getPrintData()
この doc オブジェクトの印刷データの一部を含む印刷データ表現オブジェクトを、サポートする doc フレーバに対応する形式で取得します。 |
Reader |
getReaderForText()
文字印刷データを抽出するためのリーダーをこの doc から取得します。 |
InputStream |
getStreamForBytes()
バイト印刷データを抽出するための入力ストリームをこの doc から取得します。 |
メソッドの詳細 |
---|
DocFlavor getDocFlavor()
Object getPrintData() throws IOException
getPrintData()
メソッドは、表現クラスのインスタンスを返します (表現クラス名は、getDocFlavor()
.getRepresentationClassName()
により指定)。戻り値は、Object クラスから表現クラスにキャスト可能です。
IOException
- 表現クラスがストリームであり、ストリームの構築中に入出力エラーが発生した場合にスローされるDocAttributeSet getAttributes()
Reader getReaderForText() throws IOException
IOException
- リーダーの作成中に入出力エラーが発生した場合にスローされるInputStream getStreamForBytes() throws IOException
IOException
- 入力ストリームの作成中に入出力エラーが発生した場合にスローされる
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。