public interface Doc
DocFlavor
クラス)を判別する。 docフレーバは、印刷データ形式(MIMEタイプ)および印刷データの送信元オブジェクトの表現クラスを指す。
javax.print.attribute
内で定義される。 docは、javax.print.attribute.DocAttributeSet
内に格納された出力属性を返す。
Docインタフェースの実装内の各メソッドでは、メソッドの呼出しで常に同じオブジェクトを返すことが許可されます。 これは、Print Jobまたはdocオブジェクトの他の呼出し側の場合、呼出し側が印刷データを取得する際、その印刷データ表現オブジェクトが、ストリームである印刷データ表現オブジェクトなどの印刷データを「消費する」ことを示します。 Print JobがgetPrintData()
を呼び出してストリームを取得した後でgetPrintData()
を呼び出すと、すでに読込み中の同じストリーム・オブジェクトが返されます。印刷データをもう一度最初から読み込む新規ストリーム・オブジェクトが返されることはありません。 このような動作を実行するdocオブジェクトを指定すると、docオブジェクトの実装を簡略化できます。これは、特定のdocが1つのPrint Job (複数の異なるPrint Jobではなく)に印刷データを送信することを考えると、理にかなっています。 (同一の印刷データを複数の異なるPrint Jobに送信する場合は、1つの印刷データ・ソースの最上位に複数の異なるdocオブジェクトを作成する必要があります)。
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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。