帳票(PDF形式?)の自動生成はどれがいいのか?
データベースからデータを出力する際に、それを表の帳票形式にすることは日本ならよくあることだと思うのだが、それを行なう方法としてどれがいいのかよくわからん。「表と言えばエクセル」とすると、それにJavaから読み書きすることも可能のようだ(POI, Java Excel API, XML形式など):
[Javaベース]
POI
- Apache POI – the Java API for Microsoft Documents
||以前はJakarta POI
Java Excel Api
XML形式
ExCella
が、こちらの場合はどの程度問題なく使えるのか、エクセル側の形式変更などにどの程度対応できるのかがよくわからん。記事内容も2004~2007年頃のものが多く、新しい情報が少ない感じ。
また、データ入力はWeb上で行なうものとすると、それを出力する際には印刷形式になっておればよく、エクセルでなくPDFのほうがお手軽ではないかという気もする。それで、以前からちょこちょここのPDFでの帳票作成環境を探しているのだが、決定版的なものはどうやらまだなさそう。
上でもリンクしたITproのJavaの記事ではiTextを使ったPDF形式の家計簿作成の紹介もあった。こちらもJavaベース。
iText
- iText, a F/OSS Java-PDF library: Product
- 第8回 PDFファイルの操作方法 – 誰でも使えるJava:ITpro
- iTextを利用してJavaからPDF形式の帳票を出力する:CodeZine
- 「iText」入門(無料公開中)
- [ヅラド] Java の PDFライブラリ iText を試してみる
||関連検索
- iText.NET – PDF 生成ライブラリ for .NET Framework
そのiTextを内部ライブラリとして使っているJasperReportsというのもあるもよう。また、それ用の帳票デザインを行なえるiReportというのもあるようだ。
JasperReports
- JasperForge: JasperReports Project Home
- [ThinkIT] 第1回:電子帳票システムの種類と適用範囲 (1/3)
||iReport,JFreeChart,POI - JasperReportsでフォントを埋め込まない日本語PDFを生成する方法
- リハビリ : 帳票 #1 JasperReports/iReport
- Railsで帳票を出力する(JasperReports) – ありの日記
- 大体、下のHowToにあるとおりにやると出来る
- とあるWebプログラマの軌跡(仮): Grailsで帳票!JasperReport ざっくり評価編
- 101仕事日記: [TechDay] JasperReportsとiReportを使ってみた。
- JasperReportsとiReportの入手方法から簡単な使い方まで
- JasperReportsで帳票出力 – BitArts
- FDFを使っていたが、手軽な反面、複数ページに渡るようなものが扱いにくい
[PHPベース]
上でも少し出ているが、PHPから使えるFPDFというライブラリもある。
FPDF
どの帳票の紹介サイトでもだいたいそうなのだが、表内のデータが1行で収まるものが多く、その中での改行がきちんとできるのかがそれを見ただけでは不明なのだ。FPDFの場合は、配布サイトの例にはなぜかないようだが、MultiCellという指定でこれが実現できるらしい。
- FPDFを使ったPDF作成
- FPDFでcell内で自動改行をする方法 | 自転車で通勤しましょ♪ブログ
- FPDFでMultiCellを用いて表作成
- FPDFでセルの中がうまく改行できない – PHPプロ!Q&A掲示板
これが可能なら、FPDFを試してみるか…?サイトでの紹介例を見ていると、MultiCellでの改行後の行間がちょっとイマイチだが、調整できるのかな?
それから、サーバ側でJavaからOpenOffice.orgを動かして、帳票を生成するJooReportsというのもある(JasperReportsと名前が紛らわしい…)。PDFの生成も可能のようだ。※プロジェクトサイトを見るとJOOReportsになっていた。名前が変わった?
JOOReports
商用のPDFLibに似せたライブラリもあるらしい(動作は遅い?、2003年頃のもの?)
それから、以前、教員のデータ一覧をまとめる必要があって、その際にはテキスト形式で保存したデータからTeXのtabular環境を動的に生成してデータを出力するようにしていた(TeXコンパイルと印刷は手動)。それと同じような着想のサイトもある。
[TeXベース]
- TeX→PDF変換ツールを利用したバッチ処理による帳票出力:CodeZine
- Amazon.co.jp: TEX+PHP+データベースによるPDF自動生成サーバの構築/運用: ミッチー@rootbox: 本
- XeTeXでPDF出力
- PHPだとついついPDFlibを利用しようとしてしまいますが
こちらでいいような気もするが、あまり盛り上がりはない感じ。TeX環境まで必要とするというのが敬遠されてるんでしょうか。
いろいろあるんだが、結局どれがいいのか、ひとつずつ試していくしかないのかな…。