モジュール java.desktop

パッケージ javax.print

Java印刷サービス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インターネット印刷プロトコル、1.1: モデルとセマンティクス」で指定されている属性の実装です。 javax.print.attribute.standardで指定する属性には、解像度、印刷部数、媒体サイズ、ジョブの優先順位、ページ範囲などの一般的な機能が含まれます。

ドキュメント型の仕様

DocFlavorクラスは、JPEGやPostScriptなどの、印刷データの書式を表現します。 DocFlavorオブジェクトは、形式を記述するMIMEタイプと、ドキュメントをプリンタまたは出力ストリームに送信する方法を示すドキュメント表現クラス名で構成されます。 アプリケーションは、DocFlavorおよび属性セットを使用して、DocFlavorにより指定されたドキュメント型を印刷可能で、属性セットに指定された機能を保持するプリンタを検出します。

APIの使用

Java Print Service APIを使用する通常のアプリケーションは、これらのステップを実行して、印刷要求を処理します。
  1. DocFlavorを選択する。
  2. 属性セットを作成する。
  3. DocFlavorおよび属性セットにより指定された印刷要求の処理が可能な印刷サービスを検出する。
  4. DocFlavorと実際の印刷データをカプセル化したDocオブジェクトを作成します。このオブジェクトには、: Postscriptファイル、JPEGイメージ、URL、またはプレーンテキストです。
  5. DocPrintJobにより表される印刷ジョブを印刷サービスから取得する。
  6. 印刷ジョブの印刷メソッドを呼び出す。
次のサンプル・コードは、Java Print Service APIの一般的な使用方法を示します。A4サイズのPostScriptドキュメント(両面)を5部印刷可能なプリンタを検出し、返された印刷サービスの1つから印刷ジョブを作成し、印刷を呼び出します。

 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は、印刷ジョブのために1つの印刷データを供給するオブジェクトのインタフェースを指定します。
    DocPrintJob
    このインタフェースは、ジョブ属性セットを保持する指定されたドキュメントを印刷可能な印刷ジョブを表します。
    FlavorException
    インタフェースFlavorExceptionは、mixinインタフェースであり、PrintExceptionのサブクラスは、docフレーバまたは(クラスDocFlavor)のフレーバに関するエラー状態を報告するために実装できます。
    MultiDoc
    インタフェースMultiDocは、印刷ジョブに対して複数の印刷データを供給するオブジェクトのインタフェースを指定します。
    MultiDocPrintJob
    MultiDocPrintServiceから取得したMultiDocPrintJobは、指定された文書の集合をジョブ属性のセットを持つ単一の印刷ジョブとして印刷できます。
    MultiDocPrintService
    インタフェースMultiPrintServiceは、MultiDocPrintJobのファクトリです。
    PrintService
    インタフェースPrintServiceは、DocPrintJobのファクトリです。
    URIException
    インタフェースURIExceptionは、URIアドレスを含むエラー状態を報告するためにPrintExceptionのサブクラスが実装できるmixinインタフェースです。
  • クラスのサマリー
    クラス 説明
    DocFlavor
    DocFlavorクラスは、印刷データのDocPrintJobへの提供形式を指定するオブジェクトをカプセル化します。
    DocFlavor.BYTE_ARRAY
    クラスDocFlavor.BYTE_ARRAYは、事前定義された静的定数DocFlavorオブジェクト(例えば、印刷データ表現クラスとしてバイト配列(byte[])を使用するdocフレーバ)を提供します。
    DocFlavor.CHAR_ARRAY
    クラスDocFlavor.CHAR_ARRAYは、文字配列(char[])を印刷データ表現クラスとして使用して、docフレーバなどの事前定義された静的定数DocFlavorオブジェクトを提供します。
    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は、印刷データ表現クラスとして文字列(java.lang.String)を使用するdocフレーバなど、事前定義された静的定数DocFlavorオブジェクトを提供します。
    DocFlavor.URL
    クラスDocFlavor.URLは、定義済みの静的定数DocFlavorオブジェクトを提供します。
    PrintServiceLookup
    このクラスの実装は、特定のタイプの印刷サービス(通常はプリンタと同義)用の検索サービスを提供します。
    ServiceUI
    このクラスは、Java Print Service APIを介してルックアップされた印刷サービス閲覧用のグラフィカルなユーザー・ダイアログを提供する、利便性の高いUIメソッドのコレクションです。
    ServiceUIFactory
    サービスは、オプションでUIを提供することができます。
    SimpleDoc
    このクラスは、一般的な多くの印刷要求で使用可能なDocインタフェースの実装です。
    StreamPrintService
    このクラスは、PrintServiceを拡張し、クライアントによって指定された出力ストリームに別の形式でデータを印刷する印刷サービスを表します。
    StreamPrintServiceFactory
    StreamPrintServiceFactoryは、StreamPrintServiceインスタンスのファクトリです。これにより、MIMEタイプに記述された特定のドキュメント形式で出力ストリームを印刷することが可能になります。
  • 例外のサマリー
    Exception 説明
    PrintException
    クラスPrintExceptionは、Print Serviceインスタンスの使用中に発生した印刷関連のエラー状態をカプセル化します。