DocPrintJob
およびサービス形式のDocFlavor
を使用して、Pageable
またはPrintable
オブジェクトにカプセル化された2Dグラフィックを印刷またはストリーミングできます。 DocFlavor
は、Javaオブジェクトを含むあらゆる種類のデータを表すことができます。 Pageable
またはPrintable
インタフェースの実装は、Javaオブジェクトです。 「文書タイプの指定」の章で説明したように、Java Print Service APIには、Javaオブジェクトの形式で印刷データの事前定義されたDocFlavor
オブジェクト定数が含まれています。 アプリケーションは、このタイプのデータをサポートする印刷サービスまたはストリーム印刷サービスを検索し、Doc
実装でオブジェクトをカプセル化して、DocPrintJob
のサービスに送信できます。 「サービス書式設定済みデータの印刷」のセクションは、データの印刷を示します。 「サービス書式設定済み印刷データのストリーム配信」のセクションは、データのストリーム配信を示します。 DocPrintJob
を使用した2Dグラフィック印刷アプリケーションでのイベントの登録は、DocPrintJob
を使用したドキュメント印刷アプリケーションの場合と同じ方法で行われます。 詳細は、「イベントの登録」を参照してください。DocFlavor
オブジェクト定数をlookupPrintServices
メソッドに渡します:
PrintService[] services = PrintServiceLookup .lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PRINTABLE, null);印刷アプリケーションは、
Printable
インタフェースを実装します。 Doc
を作成するには、SimpleDoc
を使用し、これをprintData
、DocFlavor
のサービス形式のDocFlavor
定数およびオプションの属性セットに渡します:
Doc doc = new SimpleDoc(this, DocFlavor.SERVICE_FORMATTED.PRINTABLE, null);
DocPrintJob
を作成し、サービスに送信します:
DocPrintJob pj = service[0].createPrintJob(); pj.print(doc);アプリケーション全体については、「例: Print2DGraphics.java」を参照してください。
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」を参照してください。