ソースサンプル
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
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.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
public class Sample1_Servlet extends HttpServlet {
// HTTP Get リクエストの処理
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// (1) PDFの出力先として使用する
ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
// レイアウト情報(XML)に渡すデータのセットを行う
// ("レイアウト情報(XML)のName属性で指定された名前","データ内容")をセットする
Hashtable<String, String> ht = new Hashtable<String, String>();
ht.put("title", "biz-Stream v5");
ht.put("company", "ブレインセラーズ・ドットコム株式会社");
ht.put("address", "東京都千代田区九段北XX-XX-XX");
ht.put("phone", "TEL.XX-XXXX-XXXX 内線:1");
ht.put("fax", "FAX.XX-XXXX-XXXX");
// (2) 入出力先を指定する
// 入力はファイル名で指定する
// 出力はByteArrayOutputStreamを指定する
XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample1.xml", pdfStream);
try {
// (3) レイアウト情報(XML)の解析を行う
xml.parse();
// (4) ページサイズの設定を行う
xml.setPageSize();
// (5) データのセットおよび座標計算を行った後、PDFを生成する
xml.toPDF(ht);
} catch (Exception ex) {
throw new ServletException(ex);
}
// (6) PDFを出力する
xml.close();
// (7) コンテンツタイプを設定する
response.setContentType("application/pdf");
response.setContentLength(pdfStream.size());
// (8) PDFをストリームに書き出す
DataOutputStream out_res = new DataOutputStream(response.getOutputStream());
out_res.write(pdfStream.toByteArray());
out_res.close();
}
}