クライアントは、MIMEタイプを使用して印刷データ書式を記述するのではなく、Javaオブジェクトを指定することもできます。印刷サービスは、このJavaオブジェクトから印刷データ書式を決定します。 たとえば、JavaオブジェクトはPostScriptドキュメントをカプセル化できます。 クライアントは、MIMEタイプを使用してドキュメントをPostScriptとして明示的に記述する代わりに、そのドキュメントへの参照をJavaオブジェクト内にラップすることができます。印刷サービスは、この参照を検査して書式がPostScriptであることを判定します。 印刷データはJavaオブジェクト経由で印刷サービスに渡されるため、Javaオブジェクトが実装するクラスはその表現クラスになります。
DocFlavor
クラスには、サービス形式の印刷データを表すDocFlavor
オブジェクト定数を含むDocFlavor.SERVICE_FORMATTED
という内部クラスがあります。 これらの各定数のMIMEタイプは"application/x-java-jvm-local-objectref"
です。これは、クライアントが表現クラスとして指定されたインタフェースを実装するJavaオブジェクトへの参照を提供することを示します。
DocFlavor.SERVICE_FORMATTED
に含まれる3つのDocFlavor
オブジェクト定数は、それぞれ、サービス形式の印刷データで使用される共通の表現クラス名を表します:
DocFlavor.SERVICE_FORMATTED.PAGEABLE
: クライアントは、java.awt.print.Pageable
インタフェースを実装するオブジェクトを提供します。このインタフェースは、出力する一連のページを表します。 プリンタはこのインタフェース内のメソッドを呼び出して、印刷するページをページごとに取得します。 ページごとにプリンタはグラフィックス・コンテキストを供給し、グラフィックス・コンテキスト内にクライアントが描画したものをすべて印刷します。 DocFlavor.SERVICE_FORMATTED.PRINTABLE
: クライアントは、java.awt.print.Printable
インタフェースを実装するオブジェクトを提供します。このインタフェースは、各ページのコンテンツの描画を担当します。 プリンタはこのインタフェース内のメソッドを呼び出して、印刷するページをページごとに取得します。 ページごとにプリンタはグラフィックス・コンテキストを供給し、グラフィックス・コンテキスト内にクライアントが描画したものをすべて印刷します。 DocFlavor.SERVICE_FORMATTED.RENDERABLE_IMAGE
: クライアントは、インタフェースjava.awt.image.renderable.RenderableImage
を実装するオブジェクトを提供します。これは、レンダリングに依存しない方法で操作でき、品質を損なうことなく、プリンタなどの様々なコンテキストにレンダリングできるイメージを表します。 プリンタは、印刷するイメージを取得するために、このインタフェース内でメソッドを呼び出します。 「はじめに」で説明されているように、2DグラフィックをJavaオブジェクトにラップするアプリケーションでは、サービス形式の印刷データDocFlavor
定数を使用できます。 詳細は、「2Dグラフィックスの印刷とストリーム配信」を参照してください。