目次 | 前の項目 | 次の項目 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.