目次||

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, 2020, Oracle and/or its affiliates. All rights reserved.