PDF Table Builder (PDF帳票ビルダー)使い方

本プログラムは、XML形式で帳票を定義し、プログラムよりデータを挿入し、PDF形式の出力を得るための補助ライブラリです。PDFデータ生成には、オープンソースのPDF生成ライブラリであるiText(R)を使用します。iTextについては http://www.itextpdf.com を御覧ください。iTextをGPLで使用しているので、本プログラムもGPLです。

本プログラム使用することで次の3種類の帳票を作成できます。
・1ページに複数の段落を含む帳票
・1ページに複数の表を含む帳票
・複数のページに渡る表を含む帳票

以下では、1ページに1つの表を含む帳票を例に、最もシンプルな帳票の作成方法を説明します。

本プログラムの使い方については以下の書籍に詳しく書きました。
『JSP帳票アプリケーション実践開発入門』竹形誠司著：ラトルズ刊

◆テンプレートの作成
帳票のテンプレートをXMLデータとして作ります。
使用できる要素は<table>、<tr>、<td>の3種類です。HTMLの<TABLE>、<TR>、<TD>と同様の方法でテーブルを定義します。<table>要素のcols属性は、テーブルの列数を指定するもので、必ず指定する必要があります。プログラムでセルに値を埋め込む場合は、<td>要素に<id>属性を指定しておきます。

例：
==>
<document>
	<table cols="2" padding="2mm" widths="60mm 60mm" >
		<tr>
			<td>column1</td>
			<td>column2</td>
		</tr>
		<tr>
			<td id="A1"></td>
			<td id="A2"></td>
		</tr>
		<tr>
			<td id="B1"></td>
			<td id="B2"></td>
		</tr>
	</table>
</document>
==<
==>
+----------+----------+
| column1  | column2  |
+----------+----------+
| (id=A1)  |  (id=A2) |
+----------+----------+
| (id=B1)  |  (id=B2) |
+----------+----------+

==<

◆Javaプログラムの作成
Javaプログラムで以下の処理を行います。

STEP:1
ファイル名を指定してPDFデータを出力するストリームを作成します。
出力ストリームを指定してレイアウトオブジェクトを作成します。

STEP:2
レイアウトオブジェクトにテンプレートをセットします。

STEP:3
テンプレート内でidの指定されているセルにデータをセットします。

STEP:4 - 出力の終了
レイアウトオブジェクトをクローズします。

例：
==>
import jp.veltec.pdf.*;
import java.io.*;
public class Test{
	public static void main(String[] args)throws Exception{
		//STEP:1
		String mPdfFileName = "test.pdf";//出力するPDFのファイル名
		FileOutputStream fos = new FileOutputStream(mPdfFileName);
		TableLayout layout= new TableLayout(fos);

		//STEP:2
		String mTemplateFileName = "template.xml";//テンプレートファイル名
		File template = new File(mTemplateFileName);
		layout.setTemplateFile(template);

		//STEP:3
		layout.setData("A1","テスト1");//id="A1"のセルに表示する文字列
		layout.setData("A2","テスト2");//id="A2"のセルに表示する文字列
		layout.setData("B1","テスト3");//id="B1"のセルに表示する文字列
		layout.setData("B2","テスト4");//id="B2"のセルに表示する文字列
		layout.addPage();

		//STEP:4
		layout.close();
	}
}
==<

◆テンプレートで使用する要素と属性
XMLで作成する帳票テンプレートでは次のような要素と属性を使用します。
長さや幅を指定する場合の単位はmmまたはpt(1/72インチ)を使います。
色を指定する場合は、"white","black","gray","red","green","blue","yellow"の文字列指定と"#80FF80"などの数値指定が可能です。

●<document>
テーブルを配置する帳票を表す要素です。
属性：
==>
size 帳票のサイズを指定します。例："A4","A4L","A5","A5L","200mm 150mm" 
margin-left 左の余白を指定します。例："20mm"
margin-right 右の余白を指定します。例："20mm"
margin-top 上の余白を指定します。例："20mm"
margin-bottom 下の余白を指定します。例："20mm"
==<

●<table>
帳票にテーブルを配置します。1つの帳票に複数のテーブルを配置できます。
属性：
==>
cols テーブルに含まれる列の数を指定します【必須】。 例："3"
outer-border-width テーブルの外枠の太さを指定します。例："1pt"
inner-border-width テーブルの内枠の太さを指定します。例："0.5pt"
margin-top テーブル上部のマージを指定します。例："5mm"
margin-bottom テーブル下部のマージを指定します。例："5mm"
widths 各列の幅を指定します。例："100mm 20mm 20mm"
position テーブルの絶対位置を指定する場合に"absolute"を指定します。
left テーブルの位置（左）。例："30mm"
top テーブルの位置（上）。例："50mm"
==<
※td要素の属性をtable要素で指定すると、そのテーブルでのデフォルトになります。

●<tr>
テーブルに行を追加します。
この要素に専用の属性はありません。
※td要素の属性をtr要素で指定すると、その行でのデフォルトになります。

●<td>
テーブルにセルを追加します。
属性：
==>
id テータを挿入する際のキー名を指定。例："field1"
colspan セルを横方向に結合。例："2"
rowspan セルを縦方向に月号。例："3"
min-height 最小の高さを指定。例："5mm"
height 固定の高さを指定。例："5mm"
align-h 水平方向の配置方法を指定。例："center","left","right"
align-v 垂直方向の配置方法を指定。例："middle","bottom","top"
font-family フォント名を指定。例："明朝","ゴシック"
font-style フォントのスタイルを指定。
	例："normal","bold","italic","oblique","underline","line-through"
font-size 文字のサイズを指定。例："12pt"
font-color 文字の色を指定。例："#5580A0"
background-color 背景色を指定。例："red"
border-width 枠線の太さを指定。例："1pt"
border-width-top 枠線(上)の太さを指定。例："1pt"
border-width-bottom  枠線(下)の太さを指定。例："1pt"
border-width-left 枠線(左)の太さを指定。例："1pt"
border-width-right 枠線(右)の太さを指定。例："1pt"
border-color 枠線の色を指定 例："gray"
border-color-top 枠線(上)の色を指定 例："gray"
border-color-bottom 枠線(上)の色を指定 例："gray"
border-color-left 枠線(左)の色を指定 例："gray"
border-color-right 枠線(右)の色を指定 例："gray"
padding セルの境界と文字の間の余白の幅を指定。例："1mm"
padding-top セルの境界(上)と文字の間の余白の幅を指定。例："1mm"
padding-bottom セルの境界(下)と文字の間の余白の幅を指定。例："1mm"
padding-left セルの境界(左)と文字の間の余白の幅を指定。例："1mm"
padding-right セルの境界(右)と文字の間の余白の幅を指定。例："1mm"
rotation 文字の向きを指定。例："left","right","up","down"
line-height 行間隔をフォントサイズの相対値で指定。例："1.5"
character-spacing 文字間隔を指定。例："2mm"
==<

●<p>
ページに段落を追加します。（PageBuilderでのみ使用可能）
属性：
==>
id データを挿入する際のキー。例："field1"
position 段落の絶対位置を指定する場合に"absolute"を指定。
left 段落の位置（左）。例："30mm"
top 段落の位置（上）。例："50mm"
font-family フォント名を指定。例："明朝","ゴシック"
font-style フォントのスタイルを指定。
	例："normal","bold","italic","oblique","underline","line-through"
font-size 文字のサイズを指定。例："12pt"
color 文字の色を指定。例："#5580A0"
align-h 水平方向の配置方法を指定。例："center","left","right"
character-spacing 文字間隔を指定。例："2mm"
line-spacing 行間隔を指定。例："2mm"
margin-top テーブル上部のマージを指定します。例："5mm"
margin-bottom テーブル下部のマージを指定します。例："5mm"
vertical 縦書きの場合に"true"を指定
width 段落の幅を指定。例："50mm"
height 段落の高さを指定。例："50mm"
left-indent 左のインデントを指定。例："20mm"
right-indent 右のインデントを指定。例："20mm"
==<

●<font>
帳票で使用するフォントを追加します。
属性：
==>
family フォントファミリの名前。例："Arial Black"
path フォントファイルの置かれているディレクトリのパス。例："/Windows/Fonts"
file フォントファイルのファイル名。例："ariblk.ttf"
index フォントファイルがコレクションの場合のインデックス。例：0
lang 日本語の場合に"jp"を指定
==<



===========以下の要素はPageBuilderとTableBuilderでのみ使用可能==============
●<img>
帳票に画像を埋め込みます
属性：
==>
src 画像のファイル名。例："sample.jpg"
background 画像を背景にしたい場合に"true"を指定
width 画像の幅。例"100mm"
height 画像の高さ。例："150mm"
top 画像の位置（上から）。例："30mm"
left 画像の位置（左から）。例："40mm"
==<

●<pdf>
帳票の背景にPDFを埋め込みます
属性：
==>
src PDFのファイル名。例："sample.pdf"
top 表示位置（上から）。例："30mm"
left 表示位置（左から）。例："40mm"
page 埋め込むPDFファイルで使用するページ例：1
==<

●<rectangle>
背景に四角形を描画します。
属性：
==>
width 四角形の幅。例"100mm"
height 四角形の高さ。例："150mm"
top 四角形の位置（上から）。例："30mm"
left 四角形の位置（左から）。例："40mm"
border-width 線の太さ。例："0.5mm"
border-color 線の色。例："red"
color 四角形の色。例："#F0F0F0"
round 角の丸み。例："3mm"
==<

●<line>
背景に線を描画します。
属性：
==>
left 線の位置（左）。例："20mm"
top 線の位置（上）例："20mm"
right 線の位置（右）例："100mm"
bottom 線の位置（下）例："100mm"
width 線の幅。例："0.5mm"
color 線の色。例："red"
==<
以上。

