« Googleの左側メニューを消すGre... Main ノートパソコンの負荷が高い »

帳票(PDF形式?)の自動生成はどれがいいのか?

データベースからデータを出力する際に、それを表の帳票形式にすることは日本ならよくあることだと思うのだが、それを行なう方法としてどれがいいのかよくわからん。「表と言えばエクセル」とすると、それにJavaから読み書きすることも可能のようだ(POI, Java Excel API, XML形式など):

[Javaベース]
POI

Java Excel Api

XML形式

ExCella

が、こちらの場合はどの程度問題なく使えるのか、エクセル側の形式変更などにどの程度対応できるのかがよくわからん。記事内容も2004~2007年頃のものが多く、新しい情報が少ない感じ。

また、データ入力はWeb上で行なうものとすると、それを出力する際には印刷形式になっておればよく、エクセルでなくPDFのほうがお手軽ではないかという気もする。それで、以前からちょこちょここのPDFでの帳票作成環境を探しているのだが、決定版的なものはどうやらまだなさそう。

上でもリンクしたITproのJavaの記事ではiTextを使ったPDF形式の家計簿作成の紹介もあった。こちらもJavaベース。

iText

そのiTextを内部ライブラリとして使っているJasperReportsというのもあるもよう。また、それ用の帳票デザインを行なえるiReportというのもあるようだ。

JasperReports

[PHPベース]
上でも少し出ているが、PHPから使えるFPDFというライブラリもある。

FPDF

どの帳票の紹介サイトでもだいたいそうなのだが、表内のデータが1行で収まるものが多く、その中での改行がきちんとできるのかがそれを見ただけでは不明なのだ。FPDFの場合は、配布サイトの例にはなぜかないようだが、MultiCellという指定でこれが実現できるらしい。

これが可能なら、FPDFを試してみるか…?サイトでの紹介例を見ていると、MultiCellでの改行後の行間がちょっとイマイチだが、調整できるのかな?

それから、サーバ側でJavaからOpenOffice.orgを動かして、帳票を生成するJooReportsというのもある(JasperReportsと名前が紛らわしい…)。PDFの生成も可能のようだ。※プロジェクトサイトを見るとJOOReportsになっていた。名前が変わった?

JOOReports

商用のPDFLibに似せたライブラリもあるらしい(動作は遅い?、2003年頃のもの?)

それから、以前、教員のデータ一覧をまとめる必要があって、その際にはテキスト形式で保存したデータからTeXのtabular環境を動的に生成してデータを出力するようにしていた(TeXコンパイルと印刷は手動)。それと同じような着想のサイトもある。

[TeXベース]

こちらでいいような気もするが、あまり盛り上がりはない感じ。TeX環境まで必要とするというのが敬遠されてるんでしょうか。

いろいろあるんだが、結局どれがいいのか、ひとつずつ試していくしかないのかな…。

Leave a comment

Your comment