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