目次|
前|
次
Java印刷サービスAPIを使用する標準的なアプリケーションは、印刷要求を処理するために次の手順を実行します。
- 適切なDocFlavorを取得します。DocFlavorは、印刷データの書式を定義するクラスです。
- AttributeSetを作成します。AttributeSetには、目的の印刷サービス機能を定義した一連の属性セットがカプセル化されます。たとえば、ステープル止めおよび両面印刷で5部印刷する機能などがカプセル化されます。
- DocFlavorと属性セットに指定された印刷要求を処理できる印刷サービスを検索します。
- 印刷サービスから印刷ジョブを作成します。
- 印刷ジョブの印刷メソッドを呼び出します。
アプリケーションは、印刷する対象および方法に応じて手順を実行します。印刷データは、プリンタまたは出力ストリームに送信できます。印刷データの書式は、テキストまたはイメージ以外に、2Dグラフィックスをカプセル化したJavaオブジェクトでもかまいません。印刷データが2Dグラフィックスの場合は、印刷ジョブはDocPrintJobまたはPrinterJobを使用して表現できます。印刷データがドキュメントの場合は、DocPrintJobを使用する必要があります。
印刷メソッドと印刷データ書式の組み合わせによって、次の6つの印刷メカニズムを選択できます。
- DocPrintJobとPrintServiceの実装を使用して、ドキュメントをプリンタに印刷する
- DocPrintJobとStreamPrintServiceを使用して、ドキュメントを出力ストリームにストリーム配信する
- DocPrintJobとPrintServiceの実装を使用して、2Dグラフィックスをプリンタに印刷する
- DocPrintJobとStreamPrintServiceを使用して、2Dグラフィックスを出力ストリームにストリーム配信する
- java.awt.print.PrinterJobを使用して、2DグラフィックスをPrintServiceに印刷する
- java.awt.print.PrinterJobを使用して、2DグラフィックスをStreamPrintServiceにストリーム配信する
「属性」の章および「ドキュメントの種類の指定」の章では、これらの任意の印刷メカニズムで使用するために属性セットを作成し、ドキュメントの種類を指定する方法について説明します。「
ドキュメントの印刷とストリーム配信」の章では、DocPrintJobを使用したドキュメントの印刷およびストリーム配信について説明します。「
2Dグラフィックスの印刷とストリーム配信」の章では、DocPrintJobとPrinterJobの両方を使用した2Dグラフィックスの印刷およびストリーム配信について説明します。
基本的な例
Java印刷サービスAPIを使用するほとんどのアプリケーションは、ドキュメントを直接プリンタに送信する可能性があります。次のコード・サンプルではこの方法を示します。
// 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) {}
}
このサンプルでは、6つの印刷方法のいずれかのみを示していますが、ほかの印刷メカニズムも同様の方法で機能します。このガイドの残りの部分では、各印刷処理およびすべての印刷メカニズムについて詳細に説明します。
目次|
前|
次