PDFBuilder (PDF帳票ビルダー)使い方 本プログラムは、XML形式で帳票を定義し、プログラムよりデータを挿入し、PDF形式の出力を得るための補助ライブラリです。PDFデータ生成には、オープンソースのPDF生成ライブラリであるiText(R)を使用します。iTextについては http://www.itextpdf.com を御覧ください。iTextをGPLで使用しているので、本プログラムもGPLです。 本プログラム使用することで次の3種類の帳票を作成できます。 ・1ページに複数の段落を含む帳票 ・1ページに複数の表を含む帳票 ・複数のページに渡る表を含む帳票 以下では、1ページに1つの表を含む帳票を例に、最もシンプルな帳票の作成方法を説明します。 ◆テンプレートの作成 帳票のテンプレートをXMLデータとして作ります。 使用できる要素は、、
の3種類です。HTMLの、、
と同様の方法でテーブルを定義します。要素のcols属性は、テーブルの列数を指定するもので、必ず指定する必要があります。プログラムでセルに値を埋め込む場合は、
要素に属性を指定しておきます。 例:
AAA BBB CCC
DDD EEE
FFF GGG
+---+---+---+ |AAA|BBB|CCC| +---+---+---+ |DDD| EEE | | +---+---+ | |FFF|GGG| +---+---+---+ | | +-----------+ ◆Javaプログラムの作成 Javaプログラムで以下の処理を行います。 STEP1-TableBuilderオブジェクトの生成 PDFファイルを出力するFileOutputStreamを用意します。 TableBuilderのコンストラクタにFileOutputStreamを渡して STEP2 - テンプレートをPdfTableBuilderにセット org.w3c.domライブラリを使用してElementオブジェクトを取得し、 setTemplateメソッドでPdfTableBuilderにセットします。 STEP3 - テンプレートに埋め込むデータを指定 HashMap型のオブジェクトにテンプレートに埋め込むデータを セットします。キーはテンプレートで設定した
要素のid属性、値はその セルに表示する文字列です。これをaddPageメソッドに渡します。 STEP4 - 出力の終了 TableBuilderオブジェクトをクローズします。 例: //--- STEP 1 --- FileOutputStream fos = new FileOutputStream("Test.pdf") TableBuilder tableBuilder = new TableBuilder(fos); //--- STEP 2 --- File template = new File("template.xml"); tableBuilder.setTemplateFile(template); //--- STEP 3 --- HashMap hmValues = new HashMap(); hmValues.put("last-cell","テスト"); tableBuilder.addPage(hmValues); //--- STEP 4 --- tableBuilder.close(); テンプレートに渡す値がない場合は引数なしのaddPageメソッドを使います。 値の異なるデータを使って複数回addPageメソッドを呼び出すと、1つのPDFデータ に複数のページを含めることができます。 ◆テンプレートで使用する要素と属性 XMLで作成する帳票テンプレートでは次のような要素と属性を使用します。 長さや幅を指定する場合の単位はmmまたはpt(1/72インチ)を使います。 色を指定する場合は、"white","black","gray","red","green","blue","yellow"の文字列指定と"#80FF80"などの数値指定が可能です。 テーブルを配置する帳票を表す要素です。 属性: size 帳票のサイズを指定します。例:"A4","A4L","A5","A5L","200mm 150mm" margin-left 左の余白を指定します。例:"20mm" margin-right 右の余白を指定します。例:"20mm" margin-top 上の余白を指定します。例:"20mm" margin-bottom 下の余白を指定します。例:"20mm" 帳票にテーブルを配置します。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要素で指定すると、そのテーブルでのデフォルトになります。 テーブルに行を追加します。 この要素に専用の属性はありません。 ※td要素の属性をtr要素で指定すると、その行でのデフォルトになります。
テーブルにセルを追加します。 属性: 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"

ページに段落を追加します。(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" 帳票で使用するフォントを追加します。 属性: family フォントファミリの名前。例:"Arial Black" path フォントファイルの置かれているディレクトリのパス。例:"/Windows/Fonts" file フォントファイルのファイル名。例:"ariblk.ttf" index フォントファイルがコレクションの場合のインデックス。例:0 lang 日本語の場合に"jp"を指定 ※以下の要素はPageBuilderとTableBuilderでのみ使用可能 帳票に画像を埋め込みます 属性: src 画像のファイル名。例:"sample.jpg" background 画像を背景にしたい場合に"true"を指定 width 画像の幅。例"100mm" height 画像の高さ。例:"150mm" top 画像の位置(上から)。例:"30mm" left 画像の位置(左から)。例:"40mm" 帳票の背景にPDFを埋め込みます 属性: src PDFのファイル名。例:"sample.pdf" top 表示位置(上から)。例:"30mm" left 表示位置(左から)。例:"40mm" page 埋め込むPDFファイルで使用するページ例:1 背景に四角形を描画します。 属性: width 四角形の幅。例"100mm" height 四角形の高さ。例:"150mm" top 四角形の位置(上から)。例:"30mm" left 四角形の位置(左から)。例:"40mm" border-width 線の太さ。例:"0.5mm" border-color 線の色。例:"red" color 四角形の色。例:"#F0F0F0" round 角の丸み。例:"3mm" 背景に線を描画します。 属性: left 線の位置(左)。例:"20mm" top 線の位置(上)例:"20mm" right 線の位置(右)例:"100mm" bottom 線の位置(下)例:"100mm" width 線の幅。例:"0.5mm" color 線の色。例:"red" 以上。