目次 | 前の項目 | 次の項目 | JavaTM 印刷サービス API ユーザガイド |
標準的なアプリケーションから Java 印刷サービス API を使用するときは、以下の手順で印刷要求を処理します。
アプリケーションは、印刷する対象および方法に応じて手順を実行します。印刷データは、プリンタまたは出力ストリームに送信できます。印刷データの書式は、テキストまたはイメージ以外に、2D グラフィックスをカプセル化した Java オブジェクトでもかまいません。印刷データが 2D グラフィックスの場合は、印刷ジョブは DocPrintJob または PrinterJob を使用して表現できます。印刷データがドキュメントの場合は、DocPrintJob を使用する必要があります。
- 適切な DocFlavor を取得します。DocFlavor は、印刷データの書式を定義するクラスです。
- AttributeSet を作成します。AttributeSet には、目的の印刷サービス機能を定義した一連の属性セットがカプセル化されます。たとえば、ステープル止めおよび両面印刷で 5 部印刷する機能などがカプセル化されます。
- DocFlavor と属性セットに指定された印刷要求を処理できる印刷サービスを検索します。
- 印刷サービスから印刷ジョブを作成します。
- 印刷ジョブの印刷メソッドを呼び出します。
印刷メソッドと印刷データ書式の組み合わせによって、次の 6 つの印刷方法を選択できます。
- DocPrintJob および PrintService の実装を使用して、ドキュメントをプリンタへ印刷する
- DocPrintJob および StreamPrintService を使用して、ドキュメントを出力ストリームへストリーム配信する
- DocPrintJob および PrintService の実装を使用して、2D グラフィックスをプリンタへ印刷する
- DocPrintJob および StreamPrintService を使用して、2D グラフィックスを出力ストリームへストリーム配信する
- java.awt.print.PrinterJob を使用して、2D グラフィックスを PrintService へ印刷する
- java.awt.print.PrinterJob を使用して、2D グラフィックスを StreamPrintService へストリーム配信する
「属性」の章と「ドキュメントの種類の指定」では、これらの印刷方法を使用するために、属性セットを作成してドキュメントの種類を指定する方法を説明します。「ドキュメントの印刷とストリーム配信」では、DocPrintJob を使用してドキュメントを印刷およびストリーム配信する方法を説明します。「グラフィックスの印刷とストリーム配信」では、DocPrintJob および PrinterJob を使用して 2D グラフィックスを印刷およびストリーム配信する方法を説明します。
Java 印刷サービス API を使用するアプリケーションでは、ほとんどの場合、ドキュメントをプリンタに直接送信します。以下のコード例でその方法を示します。この例では、6 種類の印刷方法の 1 つだけを示していますが、ほかの印刷方法も同様に機能します。このガイドの残りの部分では、各印刷処理およびすべての印刷方法について詳細に説明します。// Input the file FileInputStream textStream; try { textstream = new FileInputStream("file.TXT"); } catch (FileNotFoundException ffne) { } if (textstream == null) { return; } // Set the document type DocFlavor myFormat = DocFlavor.INPUT_STREAM.TEXT_PLAIN_ASCII; // Create a Doc Doc myDoc = new SimpleDoc(texttream, myFormat, null); // Build a set of attributes PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(5)); aset.add(MediaSize.ISO_A4); aset.add(Sides.DUPLEX); // discover the printers that can print the format according to the // instructions in the attribute set PrintService[] services = PrintServiceLookup.lookupPrintServices(myFormat, aset); // Create a print job from one of the print services if (services.length > 0) { DocPrintJob job = services[0].createPrintJob(); try { job.print(myDoc, aset); } catch (PrintException pe) {} }