目次 | 前の項目 | 次の項目 | JavaTM 印刷サービス API ユーザガイド |
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」を参照してください。次の節では、印刷ジョブまたはサービスにイベントを登録する方法について説明します。