biz-Streamマニュアル バッチ印刷ガイド 第4章 サンプルプログラム 4.1 印刷指示処理サンプル (BatchSrv1.java)

4.1 印刷指示処理サンプル (BatchSrv1.java)

概要

このサンプルでは、レイアウトファイル「Sample1.xml」をバッチ印刷しています。このとき、プリンタの制御として以下のように設定します。

  1. プリンタはCanon LBP3800 LIPSに出力します。

  2. 印刷部数は1部のみです。

  3. 出力トレイは自動的に最適なものを選択します。

  4. 印刷ジョブ名は「BatchSrv1」を含むユニークな文字列となります。

  5. 1ページ目から印刷されます。

  6. 最終ページまで印刷されます。

  7. 用紙サイズに合わせて印刷します。

サンプル構成

項目 ファイルパス
ページレイアウトサンプル <biz-Stream_home>/sample/java/Sample1.xml サンプル1
ソースサンプル <biz-Stream_home>/sample/batch_print/BatchSrv1.java サンプル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);
		}
	}
}