パッケージ 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インスタンスの使用時に発生する印刷関連のエラー条件をカプセル化します。