biz-Streamマニュアル バッチ印刷ガイド 第4章 サンプルプログラム 4.3 印刷状態 (全履歴) 取得処理サンプル (BatchSrv3.java)

4.3 印刷状態 (全履歴) 取得処理サンプル (BatchSrv3.java)

概要

このサンプルでは、印刷サーバからすべてのジョブの印刷状態を取得します。


サンプル構成

項目 ファイルパス
ページレイアウトサンプル <biz-Stream_home>/sample/java/Sample1.xml サンプル1
ソースサンプル <biz-Stream_home>/sample/batch_print/BatchSrv3.java サンプル1


ソースサンプル

赤行は、バッチ印刷のロジックを追加、変更する箇所を示します。

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.brainsellers.pdf.print.PDFBatchPrintStatus;
import com.brainsellers.pdf.print.PDFBatchStatus;

public class BatchSrv3 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 {
			// 印刷状態を取得するクラスのインスタンス化
			PDFBatchStatus status = new PDFBatchStatus("http://server:3000/"); // バッチ印刷のアプリケーションをインストールしたサーバ名を指定する
			// 取得したジョブIDをすべて照会する
			status.query();

			String result = status.getResult(); // 受付結果
			String errorCode = status.getErrorCode(); // エラーコード
			String errorCause = status.getErrorCause(); // エラー原因
			String errorDetails = status.getErrorDetails(); // エラー内容

			// ブラウザに結果を表示
			response.setContentType("text/html; charset=UTF-8");
			PrintWriter writer = response.getWriter();
			writer.println("<html><head><title>BatchSrv3</title></head><body><pre>");
			String statusResult = status.getResult();
			writer.println("RESULT:" + result); // 受付結果
			writer.println("ERROR_CODE:" + errorCode); // エラーコード
			writer.println("ERROR_CAUSE" + errorCause); // エラー原因
			writer.println("ERROR_DETAILS:" + errorDetails); // エラー内容
			writer.println("</pre>");

			// 印刷状態の全履歴取得
			for (Iterator iterator = status.getPrintStatus().iterator(); iterator.hasNext();) {
				// getPrintStatus メソッドは印刷状況全件のイテレータを返す
				PDFBatchPrintStatus printStatus = (PDFBatchPrintStatus) iterator.next();
				String jobID = printStatus.getJobId(); // ジョブID
				String jobName = printStatus.getJobName(); // ジョブ名
				String printerName = printStatus.getPrinterName(); // 出力プリンタ名
				String dateTime = printStatus.getDateTime(); // タイムスタンプ
				String pErrorCode = printStatus.getErrorCode(); // エラーコード
				String pErrorCause = printStatus.getErrorCause(); // エラー原因
				String pErrorDetails = printStatus.getErrorDetails(); // エラー内容
				String pStatusCode = printStatus.getStatusCode(); // 印刷状態コード
				String pStatus = printStatus.getStatus(); // 印刷状態内容
				writer.println("<pre>");
				writer.println("JOB_ID: " + jobID); // ジョブID
				writer.println("JOB_NAME: " + jobName); // ジョブ名
				writer.println("PRINTER_NAME: " + printerName); // 出力プリンタ名
				writer.println("DATETIME: " + dateTime); // タイムスタンプ
				writer.println("ERROR_CODE: " + pErrorCode); // エラーコード
				writer.println("ERROR_CAUSE: " + pErrorCause); // エラー原因
				writer.println("ERROR_DETAILS: " + pErrorDetails); // エラー内容
				writer.println("STATUS_CODE: " + pStatusCode); // 印刷状態コード
				writer.println("STATUS: " + pStatus); // 印刷状態内容
				writer.println("</pre>");
			}
			writer.println("</body></html>");
		} catch (Exception ex) {
			ex.printStackTrace();
			throw new ServletException(ex);
		}
	}
}