4.4 印刷の実行と、ID指定・全印刷履歴取得サンプル (BatchSrv4.java)
このサンプルでは、バッチ印刷を実行した後、その実行結果のIDを指定して印刷履歴を取得し、さらに全印刷履歴の取得を行います。
<biz-Stream_home>/batch_print/BatchSrv4.java
このサンプルは、サーブレットではなくJavaプログラムとして動作します。
<biz-Stream_home>/batch_print/BatchSrv4.java

このサンプルは、サーブレットではなくJavaプログラムとして動作します。
import java.util.Collection; import java.util.Hashtable; import java.util.Iterator; import com.brainsellers.pdf.print.PDFBatchPrintStatus; import com.brainsellers.pdf.print.PDFBatchPrintStream; import com.brainsellers.pdf.print.PDFBatchStatus; import com.brainsellers.xml.JaxpXML; import com.brainsellers.xml.common.XMLSuper; import com.brainsellers.xml.page.PDFEngine; public class BatchSrv4 { public static void main(String[] args) { BatchSrv4 batch = new BatchSrv4(); batch.sendSppToServer(); } private int sendSppToServer() { String rtnJobId = ""; //バッチ印刷クライアントがインストールされているサーバ String batchServer = "server"; try { // バッチ印刷ストリームの生成 PDFBatchPrintStream batchstream = new PDFBatchPrintStream("http://" + batchServer + ":3000/"); batchstream.setPrinterName("FinePrint"); // (1) プリンタ名 batchstream.setNumberOfCopy(1); // (2) 印刷部数 batchstream.setSelectedTray("AUTO"); // (3) 出力トレイ batchstream.setJobName("BatchPrintSrv4"); // (4) 印刷識別子 batchstream.setFromPage(1); // (5) 開始ページ番号 batchstream.setToPage(-1); // (6) 終了ページ番号 batchstream.setDoFit(true); // (7) サイズに合わせて印刷フラグ // batchstream.setPassword("password"); // (8) sppファイル暗号化パスワード // batchstream.setPasswordWithEncoded("dGVzdHBhc3M="); // (8') エンコード済み暗号化パスワード // PDF埋め込み情報をHashtableにセット Hashtable<String, String> ht = new Hashtable<String, String>(); ht.put("title", "BatchSrv4"); 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(batchstream); XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample1.xml", pdf); // レイアウト情報(XML)の解析を行う xml.parse(); // ページサイズを設定する xml.setPageSize(); // データのセットおよび座標計算を行った後、PDFを生成する xml.toPDF(ht); // PDFを出力する xml.close(); // closeしたbatchstreamより、JobIDと実行結果ステータスを取得する System.out.println("closed batchstream. code=" + batchstream.getErrorCode() + " cause=" + batchstream.getErrorCause() + " result=" + batchstream.getResult() + " detail=" + batchstream.getErrorDetails()); if (batchstream.getErrorCode().equals("000")) { rtnJobId = batchstream.getJobId(); } else { return -1; } } catch (Exception ex) { ex.printStackTrace(); return -1; } // 印刷終了を待機する try { Thread.sleep(5000); } catch (Exception ex) { } // 印刷ステータス取得 PDFBatchStatus bstatus0 = new PDFBatchStatus("http://" + batchServer + ":3000/"); // IDを指定して印刷履歴を取得 bstatus0.query(rtnJobId); Collection<PDFBatchPrintStatus> get0 = bstatus0.getPrintStatus(); int num = get0.size(); if (num > 0) { Iterator itr1 = get0.iterator(); while (itr1.hasNext()) { PDFBatchPrintStatus tmp = (PDFBatchPrintStatus) itr1.next(); if (tmp instanceof PDFBatchPrintStatus) { String id = tmp.getJobId(); System.out.println("this id=" + id); } } } // 印刷ステータス取得 PDFBatchStatus bstatus = new PDFBatchStatus("http://" + batchServer + ":3000/"); // 現在保持している全ての印刷履歴を取得 bstatus.query(); Collection<PDFBatchPrintStatus> gotStatus = bstatus.getPrintStatus(); num = gotStatus.size(); if (num > 0) { Iterator itr1 = gotStatus.iterator(); while (itr1.hasNext()) { PDFBatchPrintStatus tmp = (PDFBatchPrintStatus) itr1.next(); if (tmp instanceof PDFBatchPrintStatus) { String id = tmp.getJobId(); System.out.println("id=" + id); } } } return 0; } }