ユーザーのパースペクティブから、ドキュメントには次のような様々な形式を使用できます: PDFファイル、デジタル・カメラからのイメージ、Eメール、ワープロ・ドキュメントまたはwebページ。 クライアントでは、特定の書式のドキュメントを印刷する前に、その書式がプリンタで認識されることを確認する必要があります。 プリンタによっては、特定の書式のドキュメントを直接印刷できます。たとえば、フォト・プリンタでは、様々な形式のイメージを直接印刷できます。また、PostScriptプリンタでは、PostScriptドキュメントを直接印刷できます。 ただし、広範囲の書式のドキュメントを直接印刷できるプリンタは、ほとんどありません。ほとんどのプリンタでは、ソース・ドキュメントを印刷できる書式に変換するために、高水準のソフトウェア・サポートが必要になります。
印刷APIは、次のことが可能になるように、ドキュメントの種類を記述するための方法を提供する必要があります。
Java Print Service APIは、DocFlavor
クラスを使用してドキュメント・タイプを記述します。 DocFlavor
は次のもので構成されます:
印刷サービスへのHTMLページを記述するために、クライアントは、"text/html; charset=utf-16"
のMIMEタイプ文字列および"java.io.InputStream"
の表現クラス名を持つDocFlavor
を使用することを選択できます。 クライアントは、次の2つの方法のいずれかでこのDocFlavor
を取得できます:
DocFlavor
を作成します:
DocFlavor htmlStreamFlavor = new DocFlavor("text/html; charset=utf-16", "java.io.InputStream");
このタイプのDocFlavor
を表す事前定義済インスタンスを使用: DocFlavor.INPUT_STREAM TEXT_HTML_UTF_16
. Java印刷サービスAPIには、使用頻度の高いドキュメント・フレーバ向けに、定義済みインスタンス・セットが組み込まれています。
HTMLページにはテキスト・データが含まれ、MIMEタイプString
にはテキスト・エンコーディング(この例ではcharset=utf-16
)が含まれます。Because。 クライアントでは、印刷サービスに対して印刷データを正確に指定する必要があります。 「クライアント形式の印刷データ」の項では、これを実現するためにDocFlavor
を適切に構築する方法について説明します。 MIMEタイプにテキスト・エンコーディングが含まれていない場合は、「文字エンコーディングの重要性」のセクションで説明されているように、予期しない結果が発生する場合があります。 クライアントがJavaオブジェクトとして指定したデータの書式は、サービスで決定することもできます。 「サービス形式の印刷データ」セクションでは、サービス形式の印刷データを表すためのDocFlavor
の使用について説明します。
DocFlavor APIに事前宣言済のdocフレーバがあるからといって、特定のフレーバを実装できるわけではないことに注意してください。 たとえば、UTF-16のHTMLテキストを表す定義済みのDocFlavorを使用している場合でも、HTMLの印刷をサポートする印刷サービスがないかぎり、HTMLを印刷することはできません。 また、DocFlavor
を使用しているため、印刷リクエストで属性がサポートされない場合があります。 特定のDocFlavor
の印刷リクエストでサポートされていない属性を判別するには、メソッドPrintService.getUnsupportedAttributes(DocFlavor, AttributeSet)
をコールします。 プリンタが特定の書式をサポートしているかどうかの確認は、ユーザー側で行なってください。