public interface Doc
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
- 入力ストリームの作成中に入出力エラーが発生した場合にスローされる。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.