事前準備
・ iTextAsian.jarをClassPathを通す。
1.メニューバーの「Options」>>>「ClassPath」 からiTextAsian.jarに対してクラスパスを通す。
  iTextAsianのDL

・ <font/>タグの属性に以下を追加。また、プロパティからでも編集はある程度可能。

<font fontName="SansSerif" pdfFontName="HeiseiKakuGo-W5" size="18" isBold="false" isPdfEmbedded ="false" pdfEncoding ="UniJIS-UCS2-H" isStrikeThrough="false" />

ざっと属性の意味を追加
【fontName】 PDFでは意味を成さないらしい。
【pdfFontName】 isPdfEmbeddedの値によって働きが異なる。
・true  フォントファイル名を指定する。
・false PDFファイルに記録するフォント名を指定する。日本語標準は埋め込まないでいいらしい。
        「HeiseiKakuGo-W5 か HeiseiMin-W3」
【pdfEncoding】 フォントのエンコード形式 Hが横書き、Vが縦書き
【size】 文字の大きさ
【isPdfEmbedded 】 フォントを埋め込むか否か


プロパティの編集画面

①サイズ設定
②FontNameの設定
③Fontのエンコーディングの設定

前回のお話

JavaでPDFの2回目です。
前回はインストール後の設定と問題点等をまとめました。問題点は今後ふえるかもしれません。

今回は、設定終了後のお話を少々。

今回の目次

1.画面説明
2.新規XML文書の作成
3.定型文字フィールドと文字フィールドの記述
4.DBへの接続
5.DBからデータを表示する


1.画面説明
起動画面はこんなかんじ。新規作成の後ですけどね。。



2.新規ドキュメント作成
メニューバー「ファイル」>>>「新規作成」で下記の画面が表示される。
「用紙の向き」で用紙の向きを設定可能。
・Portrait >>> 縦
・LandScape >>> 横



3.定型文字フィールドと文字フィールドの記述

・定型文字 :静的な文字。「T」のアイコン
・文字フィールド:動的な文字。「F」のアイコン。DBなどからのデータを表示することが可能。


【定型文字】

静的な文字をPDFに出力することができます。
日本語の利用は「JavaでPDF3 」を参考。
右クリックのプロパティから、各種設定が可能。以下に代表的な設定できる項目を明記します。

《Commonタグ》
・Foreground:文字の色
・Background:背景色
・Transparent:Trueなら背景色が透明、Falseなら背景色が不透明

《Fontタグ》
JavaでPDF3 を参考。

《Static Text》
表示文字が記入できる。表示文字は、プロパティを開かずに直接入力もできるが、改行をしたい場合はここから入力する必要がある。

《Border》
罫線とPadding


【文字フィールド】
DBやJavaBeans等から、動的な文字(データ)を表示することができる。
日本語や修飾関連は定型文字と同じ。
右クリックのプロパティから、文字フィールド固有のものだけを紹介します。

《Text Field》
Textfield Expression Class:外部から取り入れるデータのクラスの型
Pattern:表示形式(Excelの表示形式みたいなもの)
Textfield expression:右の鉛筆アイコンをクリックすると、Expression Editerが立ち上がる。
              後の説明するDBのフィールドや計算式などがクリックで入力できる。

 

4.DBへの接続

大まかな流れ
  i.DB接続の登録
 ii.文字フィールドにDBの値を表示するようにする

【DB接続の登録】
メニューバーの「Tool」>>>「コネクション/データソース」から「Connections/DataSources」ウィンドウの「New」ボタンで登録する。



 (1)接続名 :iReportでのDB接続の命名欄 一応日本語はつかってません。
 (2)接続の種類 :今回はJDBCを利用して接続するので、JDBCを選択。
 (3)JDBCURL :JDBCの接続URLを記入
 (4)ユーザ名 :接続ユーザ名
 (5)パスワード :接続パスワード
 (7)パスワードの記憶 :パスワードを記憶するか否か

TESTボタンで接続確認ができます。

5.DBからデータを表示する

大まかな流れ
i.SQLの登録
ii.文字フィールドにDBの値を表示する

【SQLの登録】
メニューバー「Data」>>>「レポートクエリ」を選択し、「Report Query」ウィンドウを表示する。
ReportQueryタグにSQLを;まで記述し、エンターキーを押すと、自動的にFiled欄にFieldが表示される。
(Automatically Retireve Fieldsにチェックが入っていれば自動的にFieldが読み込まれる。)
青く選択されているFieldが、文字フィールドでDBの値として表示できる。
「OK」ボタンを押して登録完了





【文字フィールドにDBの値を表示する】
文字フィールドを作成し、右クリック>>>「プロパティ」から、Text Fieldタグの鉛筆アイコンから、Expression Editorを表示する。
EditorのObjects and expressionsタグのFiledsに先ほどSQLの登録で青く選択したFieldが利用できる。



文字フィールドの登録が終われば、ツールバーの「レポートの実行(有効な接続を使用)」ボタン(一番右にある青い三角のボタン)を押せばOK.
日本語を表示する場合は、しっかり日本語対策 をしておく。

次回は実際に簡易伝票を作成 します。



JavaからPDF作成する機会ができたので、色々試してみました。
iTextのライブラリを利用して、動的に作成することは以前できましたが、いかんせん使いづらい。
(シンプルなPDFであれば、問題なし)

もう少し、デザイン等が扱いやすいものをGoogle先生に尋ねてみる。
するとJasperReportsなるものが引っかかりました。
以前、雑誌で見た記憶がありますが使ったことはありません。

なので、とりあえず試しに使ってみました。

必要なものは次のもの。

1.JasperReports
PDF等をXML文書から作成する優れもの PDFの作成にはiTextを利用するらしい。
なので、日本語表示にはiTextAsianが必要っぽい。

2.iReport
JasperReports用のXML文書を作成するGUIツール。
JasperReports用XML作成Eclipseプラグインもあるらしいけれどもとりあえずコッチをつかってみる。
http://jasperforge.org/sf/projects/ireport

今回利用したVer等
・iReport-1.2.7


まずは、PDF作成用XMLの作成から
iReportの設定とメモ

・事前準備
インストール後、メニュバーの「Options」>>>「オプション」 「External Programs」タグで以下の2点を設定。
1.Acrobatのインスト先を指定。
2.External editorで、サクラエディタを指定(メモ帳が開くのがうざかった。)

・大まかな流れ
1.XML文書を作成する。XML文書には見栄えと文字とデータ(DBやJavaBeansが利用可能)や計算式を記入する。
イメージとしてはAccessのレポート機能に近い。

2.Javaプログラムでの利用



・XML文書作成での問題点
1.PDF日本語の表示について >>> ここ に記述
2.iReportの一部が文字化け >>> Element property欄が□□□ □□になっている。 現在対応方法不明
3.SQLのパラメータ渡しの方法>>> 解決済み 後に記載予定

次回はiReportの使い初め です。