目次 | 前へ | 次へ

Java 印刷サービスのアーキテクチャー

Java 印刷サービス API は、javax.print、javax.print.attribute、javax.print.attribute.standard、および javax.print.event という 4 つのパッケージで構成されています。

javax.print パッケージ

javax.print パッケージは、この API のメインパッケージです。このパッケージには、次の機能に使用するクラスおよびインタフェースが組み込まれています。

印刷サービスを検出する

アプリケーションは、抽象クラス PrintServiceLookup の static メソッドを呼び出して、そのアプリケーションの印刷要求を満たす機能を持つ印刷サービスを検索します。たとえば、両面印刷のドキュメントを印刷する場合、アプリケーションは最初に、両面印刷対応のプリンタを検索する必要があります。

PrintService インタフェースの実装は、PrintServiceLookup の実装から返される可能性のある実際のプリンタを表します。PrintService に照会すると、印刷サービスでサポートされる属性を返す多数のメソッドのいずれかを呼び出すことによって、その機能を判定できます。PrintService と PrintServiceLookup の使用については、「ドキュメントの印刷とストリーム配信」のセクションにある「サービスの検索」を参照してください。

JDK には、標準プラットフォームプリンタを検索できる PrintServiceLookup 実装が含まれています。印刷サービスプロバイダは、IPP プリンタや JINI プリンタなど、その他の種類のプリンタを検索するために、PrintServiceLookup の実装を作成できます。印刷サービスプロバイダは、SPI JAR ファイル仕様を使用して、作成した PrintServiceLookup 実装を動的にインストールできます。

アプリケーションはまた、データをプリンタに送信するのではなく、アプリケーションがデータを別の書式に変換できるようにする StreamPrintService を使用してデータを出力ストリームに印刷することもできます。StreamPrintService を取得するには、アプリケーション上で抽象クラス StreamPrintServiceFactory のルックアップメソッドを使用します。このクラスは PrintServiceLookup クラスと似ており、印刷サービスを検出します。StreamPrintServiceFactory と StreamPrintService の使用については、「ドキュメントの印刷とストリーム配信」の章を参照してください。StreamPrintService は、2D グラフィックスを出力ストリームに送信するときにも使用できます。詳細は、「2D グラフィックスの印刷とストリーム配信」を参照してください。


印刷データの書式の指定

DocFlavor クラスは、JPEG や PostScript などの印刷データ書式を表します。DocFlavor オブジェクトは、MIME タイプおよび表現クラス名 (java.io.InputStream など) から構成されます。前者には書式を指定し、後者にはドキュメントをサービスに配信する方法を指定します。JPS API には、使用頻度の高いデータ書式を表現する、定義済みの DocFlavor オブジェクトも組み込まれています。DocFlavor オブジェクトの使用方法の詳細は、「ドキュメントの種類の指定」の章を参照してください。

印刷ジョブの作成

適切な印刷サービスが検出されると、アプリケーションは、そのサービスから印刷ジョブを作成します。印刷ジョブは、DocPrintJob クラスによって表現されます。このクラスには、実際の印刷メソッドが組み込まれています。アプリケーションは、印刷メソッドを呼び出す前に、印刷データと印刷要求属性をカプセル化するための Doc オブジェクトを作成します。これらの属性は、javax.print.attribute および javax.print.attribute.standard パッケージで定義されています。Doc と DocPrintJob の使用については、「ドキュメントの印刷とストリーム配信」の章を参照してください。Java 印刷サービスを使用して 2D グラフィックスを印刷するアプリケーションでは、PrinterJob クラスまたは DocPrintJob クラスを使用できます。Java 印刷サービスを使用して 2D グラフィックスを印刷する方法については、「2D グラフィックスの印刷とストリーム配信」の章を参照してください。

属性のパッケージ

javax.print.attribute および javax.print.attribute.standard パッケージは、印刷サービスの機能、ドキュメントの特性、ドキュメントまたは印刷ジョブ全体を処理するための命令、あるいは印刷ジョブまたはプリンタの状態を記述する印刷属性を定義します。

javax.print.attribute パッケージは、属性の型およびそれらを収集してセットにまとめる方法を記述します。Attribute インタフェースは、すべての属性のスーパーインタフェースです。javax.print.attribute パッケージには、5 種類の異なる属性を定義したクラスとインタフェースが組み込まれています。これらの属性には、特定の印刷処理の機能が規定されています。たとえば、PrintRequestAttribute インタフェースには、クライアントが使用する属性が定義されています。この属性には、印刷部数などの印刷ジョブの特性が規定されています。

javax.print.attribute.standard パッケージには、この API でサポートされるすべての標準属性が列挙されています。このほとんどは、IPP 仕様で指定されている属性の実装です。詳細については、属性 API を参照してください。


javax.print.event パッケージ

javax.print.event パッケージには、アプリケーションが印刷ジョブや印刷サービスに関するイベントを登録できるようにするためのクラスが含まれています。印刷ジョブのイベントの登録の詳細は、「イベントの登録」のセクションを参照してください。

目次 | 前へ | 次へ

Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.
連絡先