目次 | 前へ | 次へ
Doc を作成するには、Doc インタフェースの実装を提供する必要があります。Java 印刷サービス API には、SimpleDoc と呼ばれる Doc が実装されています。アプリケーションでは、SimpleDoc の実装を使用する必要はありません。ただし、Doc に準拠するために、すべての Doc 実装は SimpleDoc の実装と同じセマンティクスに準拠する必要があります。
- すべての Doc 実装が、Doc インタフェースの 5 つのすべてのメソッドを実装する必要がある。
- Doc 実装は、複数のスレッドが Doc オブジェクトにアクセスできるようにする必要がある。
- Doc メソッドは、呼び出されるたびに、同じオブジェクトを返す。つまり、新しいストリームは返さない。入力ストリームが 1 つだけなので、Doc のコンシューマは 1 つしか存在しない。
- Doc は、要求された場合、サービスのストリームを返す
- Doc は、データの種類がドキュメントフレーバに一致するかどうかをチェックする
- getAttributes から返された属性は常に、印刷メソッドで渡された属性をオーバーライドする。
Doc を作成する前に、ファイルからドキュメントをロードする必要があります。DocFlavor の表現クラスによって、ファイルからドキュメントをロードする方法が決まります。この例の表現クラスは、InputStream です。
FileInputStream fis = new FileInputStream("java2dlogo.gif");
ストリームが返されたら、それを DocFlavor と DocAttributeSet (存在する場合) とともに SimpleDoc に渡します。DocAttributeSet がない場合は、代わりに null を渡します。
Doc doc = new SimpleDoc(fis, flavor, null);
カスタム Doc 実装の例については、「例: PrintGIF.java」を参照してください。
次のセクションでは、印刷ジョブまたはサービスに関するイベントを登録する方法について説明します。
目次 | 前へ | 次へ