biz-Streamマニュアル PDF出力ガイド 第3章 サンプルプログラム 3.4 サンプルプログラム(2-1) - CSVファイルをデータソースとしてPDFを生成

3.4 サンプルプログラム(2-1) - CSVファイルをデータソースとしてPDFを生成

概要

本サンプルプログラム(2-1)では、ドキュメントレイアウトでCSVファイルをデータソースに指定してPDFを生成します。CSVファイルは複数指定することもできるため、それぞれのファイル単位でエンコーディングを指定することが可能です。

以下のサンプルでは「Sample2-other.csv」というCSVファイルをデータソースに指定し、ファイルエンコーディングを「UTF-8」に指定しています。 アプリケーションでエンコーディングを指定しないことも可能ですが、その場合はドキュメントレイアウトで指定したエンコーディングが有効になります。ドキュメントレイアウトでもエンコーディングを指定しない場合は default_values.properties の csv_encoding が有効になります。


サンプル構成

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


ソースサンプル


import java.io.FileNotFoundException;
import java.io.IOException;

import com.brainsellers.pdf.PDFRuntimeException;
import com.brainsellers.xml.JaxpXML;
import com.brainsellers.xml.common.XMLSuper;

public class Sample2_csv {

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

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

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

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

            // (4) ドキュメントレイアウトとは別のデータソースを指定してデータをマージし
            // PDFを出力する
            // ※第3引数はCSVファイルのエンコーディングを指定する
            xml.setDataSource("csv-resource","${base-dir}/sample/java/Sample2-other.csv", "UTF-8");

            // (4') 上記setDataSourceを行わなかった場合、
            // ドキュメントレイアウトで指定されているデータソースを使用してPDFを出力する

            // (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