4.1 ダイレクト印刷のサンプル(DirectSrv1.java)
このサンプルではサンプル・レイアウト「sample1.xml」をダイレクト印刷しています。
この時、ダイレクト印刷クライアントモジュールとして次の制御を行っています。
この時、ダイレクト印刷クライアントモジュールとして次の制御を行っています。
- 応答をhttp://testsrv/DirectSrv1_1に返します
- 印刷データをc:/Temp/direct.pdf として保存します
- プリンタはRICOH IPSiO NX710に出力します
- 印刷部数は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.PDFDirectPrintStream;
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
import com.brainsellers.xml.page.PDFEngine;
public class DirectSrv1 extends HttpServlet {
// HTTP Post リクエストの処理
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
doGet(req, res);
}
// HTTP Get リクエストの処理
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// インスタンス生成
PDFDirectPrintStream direct = new PDFDirectPrintStream(response);
// 印刷応答URL
direct.setResponseUrl("http://testsrv/DirectSrv1_1");
// ファイル保存
direct.setSaveFileName("c:/Temp/direct.pdf");
// プリンタ名
direct.setPrinterName("RICOH IPSiO NX710");
// 印刷部数
direct.setNumberOfCopy(1);
// 出力トレイ
direct.setSelectedTray("AUTO");
// 印刷ジョブ名
direct.setJobName("DirectPrintSample");
// 印刷ダイアログ表示
direct.setPrintDialog(false);
// ブラウザのターゲットフレーム名(IEでのみ有効)
direct.setTarget("bizPrint");
// sppファイル暗号化パスワード
// direct.setPassword("password");
// エンコード済み暗号化パスワード
// direct.setPasswordWithEncoded("cGFzc3dvcmQ=");
// 用紙に合わせて印刷フラグ
direct.setDoFit(true);
// 印刷開始ページ
direct.setFromPage(1);
// 印刷終了ページ
direct.setToPage(-1);
// PDF埋め込み情報をHashtableにセット
Hashtable<String, String> ht = new Hashtable<String, String>();
ht.put("title", "DirectSrv1");
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(direct);
XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample1.xml", pdf);
// レイアウト情報(XML)の解析を行う
xml.parse();
try {
// ページサイズの設定を行う
xml.setPageSize();
// データのセットおよび座標計算を行った後、PDFを生成する
xml.toPDF(ht);
} catch (Exception ex) {
throw new ServletException(ex);
}
// PDFの出力を行う
xml.close();
}
}
