biz-Streamマニュアル PDF出力ガイド 第3章 サンプルプログラム 3.5 サンプルプログラム(2-2) - DBから取得したデータをデータソースとしてPDFを生成

3.5 サンプルプログラム(2-2) - DBから取得したデータをデータソースとしてPDFを生成

概要

サンプルプログラム(2-2)ではDBデータソースからデータを取得してPDFを生成します。

DB接続の設定

本サンプルではMySQLを使用しています。実行するためにはMySQLのJDBCドライバをクラスパスに設定する必要があります。
またドキュメントレイアウトにDBへの接続情報を設定しますが、お客様環境に合わせて「リソース定義」のDB接続時のユーザID・パスワードを設定してください。

サンプル2-2

SQLの設定

ドキュメントレイアウトにSQLを設定しますが、 アプリケーションからSQLを動的に変更することが可能です。 以下では「GNPが550,000より多い」データを取得するようにsetDataSourceParameterメソッドにて可変パラメータを設定しています。プログラムで値を設定しなかった場合のデフォルト値は、ドキュメントレイアウトで設定している「150,000」となります。

レイアウトの作成については、レイアウトデザイナガイド『6.1 データマスター設定(JDBC 経由データベースアクセス)』を参照してください。

サンプル2-2


サンプル構成

項目 ファイルパス
ドキュメントレイアウトサンプル <biz-Stream_home>/sample/java/Sample2_db-doc.xml サンプル1
ページレイアウトサンプル <biz-Stream_home>/sample/java/Sample2-page.xml サンプル1
ソースサンプル <biz-Stream_home>/sample/java/Sample2_db.java サンプル1
出力結果サンプル <biz-Stream_home>/sample/java/Sample2_db.pdf サンプル1


ソースサンプル


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 Sample2_db {

    public static void main(String args[]) {
        new Sample2_db(args);
        System.exit(0);
    }

    public Sample2_db(String args[]) {
        try {
            Hashtable<String, String> param1 = new Hashtable<String, String>();
            param1.put("param1", "550000");

            // (1) 入出力共にファイル名で指定する
            XMLSuper xml = new JaxpXML(
                    "${base-dir}/sample/java/Sample2_db-doc.xml",
                    "${base-dir}/sample/java/Sample2_db.pdf");

            // (2) レイアウト情報(XML)の解析を行う
            xml.parse();

            // (3) 用紙サイズ、セキュリティ等の文書情報はドキュメントレイアウトで定義するので
            // アプリケーションでは設定しません。改ページ処理も必要ありません。

            // (4) SQLの可変パラメータを変更する
            xml.setDataSourceParameter("sql-statement", param1);

            // (5) 座標計算を行う
            xml.calcDataSize();

            // (6) ドキュメントレイアウトで指定されているデータソースを使用してデータをマージし
            // PDFを生成する。
            xml.toPDF();

            // (7) PDFを出力する
            xml.close();

        } catch (PDFRuntimeException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


出力結果

サンプル2-2