3.2 サンプルプログラム(1-1) - ページレイアウトでPDFを生成
概要
本プログラムは、指定されたページレイアウトに対し、上位アプリケーションで準備したデータ(Hashtable)を流し込んで PDFを生成する、biz-Streamライブラリのアプリケーションの内で一番シンプルなものです。
サンプル構成
| 項目 | ファイルパス |
|---|---|
| ページレイアウトサンプル |
<biz-Stream_home>/sample/java/Sample1.xml
|
| ソースサンプル |
<biz-Stream_home>/sample/java/Sample1.java
|
| 出力結果サンプル |
<biz-Stream_home>/sample/java/Sample1.pdf
|
ソースサンプル
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Hashtable;
import com.brainsellers.pdf.PDFRuntimeException;
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;
public class Sample1 {
public static void main(String args[]) {
new Sample1(args);
System.exit(0);
}
public Sample1(String args[]) {
try {
// (1) 入出力共にファイル名で指定する
XMLSuper xml = new JaxpXML("${base-dir}/sample/java/Sample1.xml",
"${base-dir}/sample/java/Sample1.pdf");
// (2) レイアウト情報(XML)の解析を行う
xml.parse();
// (3) PDF表示時に全体表示で表示する
xml.setAutoResize();
int roopNum = 1;
// int roopNum = 3; //複数ページ出力時の例
for (int i = 0; i < roopNum; i++) {
// 2ページ目以降は改ページを行なう
if (i != 0) {
xml.newPage();
}
// (4) ページ毎の設定は毎ページ設定する
// <Layout>タグの幅と高さをページサイズとして使用する
xml.setPageSize();
// レイアウト情報(XML)に渡すデータのセットを行う
// ("レイアウト情報(XML)のName属性で指定された名前","データ内容")をセットする
Integer exNo = i + 1;
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" + " 内線:" + exNo.toString());
ht.put("fax", "FAX.XX-XXXX-XXXX");
// (5) データのセットおよび座標計算を行った後、PDFを生成する
xml.toPDF(ht);
// (6) 1ページ毎に使用したオブジェクトを解放する
xml.flush();
}
// (7) PDFを出力する
xml.close();
} catch (PDFRuntimeException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力結果
