biz-Streamマニュアル ダイレクト印刷ガイド 第3章 ダイレクト印刷を使用したアプリケーション開発の概要 3.1.3 コーディング方法

3.1.3 コーディング方法

前述のように、ダイレクト印刷アプリケーションはPDFを生成する部分は既存のPDF生成アプリケーションと同じように作成できます。ここではダイレクト印刷のコーディングに関して説明するため、biz-Streamライブラリを利用したPDFを生成するWEBアプリケーションがすでにあるものとします。biz-Streamライブラリを利用したPDFを生成するWEBアプリケーションの開発方法およびレイアウトの作成方法に関してはbiz-Streamの各マニュアルをご確認ください。

最も簡単なPDFを生成するWEBアプリケーションは以下のように記述できます。(ここではサーブレットの基本的な処理は省略してあります)
public void makePdf(HttpServletResponse response) throws Exception {
	ServletOutputStream output = response.getOutputStream();
	PDFEngine pdf = new PDFEngine( output );
	XMLSuper xml = new JaxpXML( "${base-dir}/sample/xml/Circle/CircleSample1.xml" , pdf );
	xml.parse();
	xml.calcDataSize();
	xml.setPageSize();
	xml.toPDF();
	xml.close();
}
これをダイレクト印刷アプリケーションに移行する場合、次の赤行のような変更を加えることになります。(PDF生成エンジンの出力先に指定していた出力ストリームをPDFDirectPrintStreamのインスタンスに変更するだけです)
public void makePdf(HttpServletResponse response) throws Exception {
	PDFDirectPrintStream direct = new PDFDirectPrintStream( response );
	PDFEngine pdf = new PDFEngine( direct );
	XMLSuper xml = new JaxpXML( "${base-dir}/sample/xml/Circle/CircleSample1.xml" , pdf );
	xml.parse();
	xml.calcDataSize();
	xml.setPageSize();
	xml.toPDF();
	xml.close();
}
また、ダイレクト印刷時のプリンタの制御は以下のようにPDFDirectPrintStreamのメソッドを呼び出すことで行います。
	PDFDirectPrintStream direct = new PDFDirectPrintStream(response);
	direct.setPrinterName("Canon LBP3800 LIPSLX");		//プリンタ名
	direct.setNumberOfCopy(1);				// 印刷部数