モジュール java.desktop
パッケージ javax.print
Java™Print Service APIのプリンシパル・クラスおよびインタフェースを提供します。 Java Print Service APIを使用すると、クライアントおよびサーバー・アプリケーションが次のことを実行できるようになります。
- 機能に基づいて、印刷サービスを検出および選択する
- 印刷データの形式を指定する
- 印刷するドキュメント型をサポートするサービスに印刷ジョブを送信する
印刷サービスの検出
アプリケーションから抽象クラスPrintServiceLookupのstaticメソッドを呼び出して、アプリケーションの印刷要求を満たす機能を持った印刷サービスを検索します。 たとえば、両面印刷のドキュメントを印刷する場合、アプリケーションは最初に、両面印刷対応のプリンタを検索する必要があります。
JDKには、標準プラットフォーム・プリンタを検出するためのPrintServiceLookup実装が含まれています。 印刷サービス・プロバイダは、IPPプリンタやJINIプリンタなど、その他の種類のプリンタを検索するために、PrintServiceLookupの実装を作成できます。 印刷サービス・プロバイダは、ServiceLoader機能を使用して、これらのPrintServiceLookup実装を動的にインストールできます。
属性定義
javax.print.attributeおよびjavax.print.attribute.standardパッケージは、印刷サービス機能の記述、印刷ジョブ要件の指定、印刷ジョブの進行状況の追跡を行う印刷属性を定義します。
javax.print.attributeパッケージは、属性型、および属性型をセットにまとめる方法を記述します。 javax.print.attribute.standardパッケージは、APIでサポートされているすべての標準属性を列挙します。そのほとんどは、2000年9月日付のIETF仕様のRFC 2911 Internet Printing Protocol、 1.1: Model and Semanticsで指定された属性の実装です。 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は、PrintExceptionのサブクラスが実装して、特定のPrint Serviceインスタンスでサポートされていない1つ以上の印刷属性を含むエラー状態を報告できる混合インタフェースです。CancelablePrintJob このインタフェースは、印刷ジョブを取り消す際に印刷アプリケーションにより使用されます。Doc インタフェースDocは、印刷ジョブに1つの印刷データを提供するオブジェクトのインタフェースを指定します。DocPrintJob このインタフェースは、ジョブ属性セットを保持する指定されたドキュメントを印刷可能な印刷ジョブを表します。FlavorException インタフェースFlavorExceptionは、PrintExceptionのサブクラスが、docフレーバまたはフレーバ(クラスDocFlavor)に関連するエラー状態を報告するために実装できるmixinインタフェースです。MultiDoc インタフェースMultiDocは、印刷ジョブに複数の印刷データを提供するオブジェクトのインタフェースを指定します。MultiDocPrintJob MultiDocPrintServiceから取得すると、MultiDocPrintJobは、指定されたドキュメント・コレクションを、一連のジョブ属性を持つ単一の印刷ジョブとして出力できます。MultiDocPrintService インタフェースMultiPrintServiceは、MultiDocPrintJobのファクトリです。PrintService インタフェースPrintServiceは、DocPrintJobのファクトリです。URIException インタフェースURIExceptionは、PrintExceptionのサブクラスが実装して、URIアドレスに関するエラー状態を報告できる混合インタフェースです。 -
クラスのサマリー クラス 説明 DocFlavor DocFlavorクラスは、印刷データのDocPrintJobへの提供形式を指定するオブジェクトをカプセル化します。DocFlavor.BYTE_ARRAY クラスDocFlavor.BYTE_ARRAYは、事前定義済の静的定数DocFlavorオブジェクト(バイト配列(byte[])を印刷データ表現クラスとして使用するdocフレーバなど)を提供します。DocFlavor.CHAR_ARRAY クラスDocFlavor.CHAR_ARRAYは、事前定義済の静的定数DocFlavorオブジェクトを提供します。たとえば、docフレーバでは、文字配列(char[])を印刷データ表現クラスとして使用します。DocFlavor.INPUT_STREAM クラスDocFlavor.INPUT_STREAMは、事前定義済の静的定数DocFlavorオブジェクト(バイト・ストリーム(java.io.InputStream)を印刷データ表現クラスとして使用するdocフレーバなど)を提供します。DocFlavor.READER クラスDocFlavor.READERは、印刷データ表現クラスとして文字ストリーム(java.io.Reader)を使用するdocフレーバなど、事前定義済の静的定数DocFlavorオブジェクトを提供します。DocFlavor.SERVICE_FORMATTED クラスDocFlavor.SERVICE_FORMATTEDは、事前定義済の静的定数DocFlavorオブジェクトを提供します。たとえば、サービス形式の印刷データのdocフレーバなどです。DocFlavor.STRING クラスDocFlavor.STRINGは、事前定義済の静的定数DocFlavorオブジェクト(たとえば、文字列(java.lang.String)を印刷データ表現クラスとして使用するdocフレーバ)を提供します。DocFlavor.URL クラスDocFlavor.URLは、事前定義済の静的定数DocFlavorオブジェクトを提供します。PrintServiceLookup このクラスの実装は、特定のタイプの印刷サービス(通常はプリンタと同義)用の検索サービスを提供します。ServiceUI このクラスは、Java Print Service APIを介してルックアップされた印刷サービス閲覧用のグラフィカルなユーザー・ダイアログを提供する、利便性の高いUIメソッドのコレクションです。ServiceUIFactory サービスは、オプションでUIを提供することができます。SimpleDoc このクラスは、一般的な多くの印刷要求で使用可能なDocインタフェースの実装です。StreamPrintService このクラスは、PrintServiceを拡張し、クライアントによって指定された出力ストリームに別の形式でデータを印刷する印刷サービスを表します。StreamPrintServiceFactory StreamPrintServiceFactoryは、StreamPrintServiceインスタンスのファクトリです。これにより、MIMEタイプに記述された特定のドキュメント形式で出力ストリームを印刷することが可能になります。 -
例外のサマリー 例外 説明 PrintException クラスPrintExceptionは、印刷サービス・インスタンスの使用中に発生した印刷関連のエラー状態をカプセル化します。