3.4 サンプルプログラム(2-1) - CSVファイルをデータソースとしてPDFを生成
概要
本サンプルプログラム(2-1)では、ドキュメントレイアウトでCSVファイルをデータソースに指定してPDFを生成します。CSVファイルは複数指定することもできるため、それぞれのファイル単位でエンコーディングを指定することが可能です。
以下のサンプルでは「Sample2-other.csv」というCSVファイルをデータソースに指定し、ファイルエンコーディングを「UTF-8」に指定しています。 アプリケーションでエンコーディングを指定しないことも可能ですが、その場合はドキュメントレイアウトで指定したエンコーディングが有効になります。ドキュメントレイアウトでもエンコーディングを指定しない場合は default_values.properties の csv_encoding が有効になります。
- 「レイアウト・デザイナ ガイド」-「第6章 データマスター設定」-「6.3 CSVデータ」-「6.3.1 リソース定義」
- 「ライブラリ共通ガイド」-「 第3章 プロパティファイル 」-「3.3 default_values.propertiesでカスタマイズ可能な項目」-「3.3.2 その他、ファイルパスなどの設定に関する項目」
サンプル構成
| 項目 | ファイルパス |
|---|---|
| ドキュメントレイアウトサンプル |
<biz-Stream_home>/sample/java/Sample2_csv-doc.xml
|
| ページレイアウトサンプル |
<biz-Stream_home>/sample/java/Sample2-page.xml
|
| ソースサンプル |
<biz-Stream_home>/sample/java/Sample2_csv.java
|
| CSVデータサンプル |
<biz-Stream_home>/sample/java/Sample2-csv.csv
|
|
<biz-Stream_home>/sample/java/Sample2-other.csv
|
|
| 出力結果サンプル |
<biz-Stream_home>/sample/java/Sample2_csv.pdf
|
ソースサンプル
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();
}
}
}
出力結果
