4.1 印刷指示処理サンプル (BatchSrv1.java)
このサンプルでは、レイアウトファイル「Sample1.xml」をバッチ印刷しています。このとき、プリンタの制御として以下のように設定します。
- プリンタはCanon LBP3800 LIPSに出力します。
- 印刷部数は1部のみです。
- 出力トレイは自動的に最適なものを選択します。
- 印刷ジョブ名は「BatchSrv1」を含むユニークな文字列となります。
- 1ページ目から印刷されます。
- 最終ページまで印刷されます。
- 用紙サイズに合わせて印刷します

赤行は、バッチ印刷のロジックを追加、変更する箇所を示します。
import java.io.IOException; import java.util.Hashtable; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.brainsellers.pdf.print.PDFBatchPrintStream; import com.brainsellers.xml.JaxpXML; import com.brainsellers.xml.common.XMLSuper; import com.brainsellers.xml.page.PDFEngine; public class BatchSrv1 extends HttpServlet { // HTTP Post リクエストの処理 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } // HTTP Get リクエストの処理 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // ダイレクト印刷バッチタイプの出力先ストリームのインスタンス化 PDFBatchPrintStream batch = new PDFBatchPrintStream("http://server:3000/"); //バッチ印刷のアプリケーションをインストールしたサーバ名を指定する batch.setPrinterName("Canon LBP3800 LIPS"); // (1) プリンタ名 batch.setNumberOfCopy(1); // (2) 印刷部数 batch.setSelectedTray("AUTO"); // (3) 出力トレイ batch.setJobName("BatchSrv1"); // (4) 印刷識別子(2バイト文字を使用する場合はUTF-8) batch.setFromPage(1); // (5) 開始ページ番号 batch.setToPage(-1); // (6) 終了ページ番号 batch.setDoFit(true); // (7) 用紙サイズに合わせて印刷 // batch.setPassword("password"); // (8) 暗号化パスワード(クライアントインストール時に指定したもの) // PDF埋め込み情報をHashtableにセット Hashtable<String, String> ht = new Hashtable<String, String>(); ht.put("title", "BatchSrv1"); ht.put("company", "ブレインセラーズ・ドットコム株式会社"); ht.put("address", "東京都千代田区九段北XX-XX-XX"); ht.put("phone", "TEL.XX-XXXX-XXXX"); ht.put("fax", "FAX.XX-XXXX-XXXX"); PDFEngine pdf = new PDFEngine(batch); XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample1.xml", pdf); // レイアウト情報(XML)の解析を行う xml.parse(); // ページサイズを設定する xml.setPageSize(); // データのセットおよび座標計算を行った後、PDFを生成する xml.toPDF(ht); // PDFをの出力する xml.close(); // closeしたPDFBatchPrintStreamから、JobIDと実行結果ステータスを取得する System.out.println("closed batch. JobID=" + batch.getJobId() + " code=" + batch.getErrorCode() + " cause=" + batch.getErrorCause() + " result=" + batch.getResult() + " detail=" + batch.getErrorDetails()); } catch (Exception ex) { throw new ServletException(ex); } } }