3.1.3 コーディング方法
前述のように、ダイレクト印刷アプリケーションはPDFを生成する部分は既存のPDF生成アプリケーションと同じように作成できます。ここではダイレクト印刷のコーディングに関して説明するため、biz-Streamライブラリを利用したPDFを生成するWEBアプリケーションがすでにあるものとします。biz-Streamライブラリを利用したPDFを生成するWEBアプリケーションの開発方法およびレイアウトの作成方法に関してはbiz-Streamの各マニュアルをご確認ください。
最も簡単なPDFを生成するWEBアプリケーションは以下のように記述できます。(ここではサーブレットの基本的な処理は省略してあります)
最も簡単な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); // 印刷部数
- PDFDirectPrintStreamのインターフェイスに関しては『3.4.1 PDFDirectPrintStreamクラス』に詳細に記述しています。 また、『第4章 サンプルプログラム』で具体的な利用例を示しますのでこちらもご確認ください。