パッケージ javax.print
- 機能に基づいて、印刷サービスを検出および選択する
- 印刷データの形式を指定する
- 印刷するドキュメント型をサポートするサービスに印刷ジョブを送信する
印刷サービスの検出
アプリケーションから抽象クラスPrintServiceLookup
のstaticメソッドを呼び出して、アプリケーションの印刷要求を満たす機能を持った印刷サービスを検索します。 たとえば、両面印刷のドキュメントを印刷する場合、アプリケーションは最初に、両面印刷対応のプリンタを検索する必要があります。
JDKには、標準プラットフォーム・プリンタを検出するためのPrintServiceLookup
実装が含まれています。 印刷サービス・プロバイダは、IPPプリンタやJINIプリンタなど、その他の種類のプリンタを検索するために、PrintServiceLookup
の実装を作成できます。 印刷サービス・プロバイダは、ServiceLoader
機能を使用してこれらのPrintServiceLookup
実装を動的にインストールできます。
属性の定義
javax.print.attribute
およびjavax.print.attribute.standard
パッケージは、印刷サービス機能の記述、印刷ジョブ要件の指定、印刷ジョブの進行状況の追跡を行う印刷属性を定義します。
javax.print.attribute
パッケージは、属性型、および属性型をセットにまとめる方法を記述します。 javax.print.attribute.standard
パッケージは、APIのサポートするすべての標準属性を列挙します。これらの属性の大半は、IETF仕様「RFC 2911 Internet Printing Protocol, 1.1: Model and Semantics」(2000年9月)で指定された属性の実装です。 javax.print.attribute.standard
で指定する属性には、解像度、印刷部数、媒体サイズ、ジョブの優先順位、ページ範囲などの一般的な機能が含まれます。
ドキュメント型の仕様
DocFlavor
クラスは、JPEGやPostScriptなどの、印刷データの書式を表現します。 DocFlavor
オブジェクトは、形式を記述するMIMEタイプと、ドキュメントをプリンタまたは出力ストリームに送信する方法を示すドキュメント表現クラス名で構成されます。 アプリケーションは、DocFlavor
および属性セットを使用して、DocFlavor
により指定されたドキュメント型を印刷可能で、属性セットに指定された機能を保持するプリンタを検出します。
APIの使用
Java Print Service APIを使用する通常のアプリケーションは、次の手順を実行して、印刷要求を処理します。DocFlavor
を選択する。- 属性セットを作成する。
DocFlavor
および属性セットにより指定された印刷要求の処理が可能な印刷サービスを検出する。DocFlavor
および実印刷データをカプセル化したDoc
オブジェクトを作成する。これは、Postscriptファイル、JPEGイメージ、URL、プレーン・テキストなど、さまざまな形式を取ることがある。DocPrintJob
により表される印刷ジョブを印刷サービスから取得する。- 印刷ジョブの印刷メソッドを呼び出す。
FileInputStream psStream; try { psStream = new FileInputStream("file.ps"); } catch (FileNotFoundException ffne) { } if (psStream == null) { return; } DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT; Doc myDoc = new SimpleDoc(psStream, psInFormat, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(5)); aset.add(MediaSizeName.ISO_A4); aset.add(Sides.DUPLEX); PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset); if (services.length > 0) { DocPrintJob job = services[0].createPrintJob(); try { job.print(myDoc, aset); } catch (PrintException pe) {} }
注: javax.print APIでは、メソッドへのnull参照パラメータ指定は、ドキュメントに意味が明記されている場合を除いては不正であることに注意してください。 これに反する使用は無効なコーディングであり、すぐにまたはあとで実行時の例外が生ずる結果になります。 IllegalArgumentExceptionおよびNullPointerExceptionは、このような場合の典型的で許容できる実行時の例外の事例です。
- 導入されたバージョン:
- 1.4
-
インタフェースのサマリー インタフェース 説明 AttributeException AttributeExceptionインタフェースはmixinインタフェースで、PrintException
のサブクラスはこのインタフェースを実装して、特定のPrint Serviceインスタンスがサポートしない1つまたは複数の印刷属性に関係するエラー条件を報告できます。CancelablePrintJob このインタフェースは、印刷ジョブを取り消す際に印刷アプリケーションにより使用されます。Doc Docインタフェースは、Print Job用印刷データの一部を提供するオブジェクトに対するインタフェースを指定します。DocPrintJob このインタフェースは、ジョブ属性セットを保持する指定されたドキュメントを印刷可能な印刷ジョブを表します。FlavorException FlavorExceptionインタフェースはmixinインタフェースで、PrintException
のサブクラスは、このインタフェースを実装してdocフレーバ(DocFlavor
クラス)に関するエラー条件を報告できます。MultiDoc MultiDocインタフェースは、Print Job用印刷データの複数部分を提供するオブジェクトに対するインタフェースを指定します。MultiDocPrintJob MultiDocPrintServiceから取得されます。MultiDocPrintJobは、指定されたドキュメントのコレクションを、ジョブ属性セットを保持する単一の印刷ジョブとして出力できます。MultiDocPrintService MultiPrintServiceインタフェースは、MultiDocPrintJobのファクトリです。PrintService PrintServiceインタフェースは、DocPrintJobのファクトリです。URIException URIExceptionインタフェースは、mixinインタフェースで、PrintException
のサブクラスは、このインタフェースを実装してURIアドレスに関するエラー条件を報告できます。 -
クラスのサマリー クラス 説明 DocFlavor DocFlavor
クラスは、印刷データのDocPrintJob
への提供形式を指定するオブジェクトをカプセル化します。DocFlavor.BYTE_ARRAY DocFlavor.BYTE_ARRAYクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。バイト配列(byte[]
)を印刷データ表現クラスとして使用するdocフレーバはその例です。DocFlavor.CHAR_ARRAY DocFlavor.CHAR_ARRAYクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。文字配列(char[]
)を印刷データ表現クラスとして使用するdocフレーバはその例です。DocFlavor.INPUT_STREAM DocFlavor.INPUT_STREAMクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。バイト・ストリーム(java.io.InputStream
)を印刷データ表現クラスとして使用するdocフレーバはその例です。DocFlavor.READER DocFlavor.READERクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。文字ストリーム(java.io.Reader
)を印刷データ表現クラスとして使用するdocフレーバはその例です。DocFlavor.SERVICE_FORMATTED DocFlavor.SERVICE_FORMATTEDクラスは、定義済みのstatic定数DocFlavorオブジェクト(例、サービス形式の印刷データ用docフレーバ)を提供します。DocFlavor.STRING DocFlavor.STRINGクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。文字列(java.lang.String
)を印刷データ表現クラスとして使用するdocフレーバはその例です。DocFlavor.URL DocFlavor.URLクラスは、事前定義されたstatic定数DocFlavorオブジェクトを提供します。PrintServiceLookup このクラスの実装は、特定のタイプの印刷サービス(通常はプリンタと同義)用の検索サービスを提供します。ServiceUI このクラスは、Java Print Service APIを介してルックアップされた印刷サービス閲覧用のグラフィカルなユーザー・ダイアログを提供する、利便性の高いUIメソッドのコレクションです。ServiceUIFactory サービスは、オプションでUIを提供することができます。SimpleDoc このクラスは、一般的な多くの印刷要求で使用可能なDoc
インタフェースの実装です。StreamPrintService このクラスは、PrintService
を拡張し、クライアントによって指定された出力ストリームに別の形式でデータを印刷する印刷サービスを表します。StreamPrintServiceFactory StreamPrintServiceFactory
は、StreamPrintService
インスタンスのファクトリです。これにより、MIMEタイプに記述された特定のドキュメント形式で出力ストリームを印刷することが可能になります。 -
例外のサマリー 例外 説明 PrintException PrintExceptionクラスは、Print Serviceインスタンスの使用時に発生する印刷関連のエラー条件をカプセル化します。