目次 | 前の項目 | 次の項目 JavaTM 印刷サービス API ユーザガイド


サービス書式設定済みデータ

DocPrintJob およびサービス書式設定済み DocFlavor を使用して、Pageable または Printable オブジェクトにカプセル化された 2D グラフィックスを印刷またはストリーム配信することができます。DocFlavor は、Java オブジェクトなど、あらゆる種類のデータを表現できます。Pageable または Printable インタフェースの実装は、Java オブジェクトです。「ドキュメントの種類の指定」説明したように、Java 印刷サービス API には、Java オブジェクトの形式で、印刷データ向けの定義済み DocFlavor オブジェクト定数が組み込まれています。アプリケーションでは、この種類のデータをサポートする印刷サービスまたはストリーム印刷サービスを検索し、Doc 実装内にオブジェクトをカプセル化して、DocPrintJob 内のサービスに送信することができます。「サービス書式設定済みデータの印刷」では、データを印刷する例を示します。「サービス書式設定済み印刷データのストリーム配信」では、データをストリーム配信する例を示します。DocPrintJob を使用して 2D グラフィックスを印刷するアプリケーションにイベントを登録する方法は、DocPrintJob を使用してドキュメントを印刷するアプリケーションにイベントを登録する方法と同じです。詳細については、「イベントの登録」を参照してください。


サービス書式設定済みデータの印刷

サービス書式設定済みデータに対応した印刷サービスを検索するには、適切なサービス書式設定済み DocFlavor オブジェクト定数を lookupPrintServices メソッドに渡します。

PrintService []services =
	PrintServiceLookup.lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PRINTABLE,
							null);
印刷アプリケーションが Printable インタフェースを実装します。Doc を作成するには、SimpleDoc を使用します。このとき、this を printData に渡します。つまり、サービス書式設定済み DocFlavor 定数およびオプションの属性セットを DocFlavor に渡します。

Doc  doc = new SimpleDoc(this, DocFlavor.SERVICE_FORMATTED.PRINTABLE, null);
DocPrintJob を作成し、それをサービスに送信します。

DocPrintJob pj = service[0].createPrintJob();
pj.print(doc);
アプリケーション全体については、「例: Print2DGraphics.java」を参照してください。


サービス書式設定済み印刷データのストリーム配信

ストリーム印刷サービスを使用して、Java オブジェクトにカプセル化された 2D グラフィックスを別の書式にエクスポートすることができます。次の例では、Printable のグラフィックスを Postscript にエクスポートしています。

DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE
StreamPrintServiceFactory []factories =
	StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor,
							"application/postscript"));
if (factories.length == 0) {
	System.err.println("No suitable factories");
	System.exit(0);
}
try{
	FileOutputStream fos = new FileOutputStream("out.ps");
	StreamPrintService sps = factories[0].getPrintService(fos);
}
Doc  doc = new SimpleDoc(this, flavor, null);
sps.createPrintJob().print(doc);
アプリケーション全体については、「例: Print2DtoStream.java」を参照してください。



目次 | 前の項目 | 次の項目
Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.