JasperReports 6 で PDF を作り、ブラウザーで表示する【1】

JasperReport 6 と Java を使って PDF を出力しました。試行錯誤の連続だったので、忘れないように、一連の手順をまとめました。今回は「【1】JasperReport とは?~帳票に出力するデータを準備する」です。

JasperReports とは

JasperReports は、帳票および BI ツール群です。企業に蓄えられたたくさんのデータを加工して、さらに必要に応じて帳票化して、ビジネスの分析に役立てようというものです。

帳票を作成するためのライブラリである JasperReports Library、帳票レイアウト ファイルを作成するための Jaspersoft Studio という GUI アプリケーション、帳票の管理などが行える Jaspersoft Server などで構成されます。帳票は、入力データとして各種データベースや Excel 、CSV などを使うことができ、また PDF、Excel、HTML など、いろいろな形式で出力できるようです。

BI ツールというと、私はなんとなく敷居が高そうで構えてしまうのですが、ちょっとした帳票を出力するだけの目的にも使えます。

ちなみに、JasperReports のことを Web で検索すると、しつこいぐらい iReport という名前が出てくるのですが、どうやら iReport を新しくEclipse ベースに移植したものが Jaspersoft Studio とのことです。[古]iReport → [新]Jaspersoft Studio ということみたいです。iReport の方は 2015 年末に開発・保守を停止する予定らしいので、これから使うのなら、Jaspersoft Studio が良さそうです。Jaspersoft 社が TIBCO 社に合併されたので、Jaspersoft Studio は、正式には TIBCO Jaspersoft Studio というのですが、本記事では Jaspersoft Studio と表記しています。

環境

  • OS:Windows 7 Home Premium Service Pack 1(64 ビット版)
  • 言語:Java 8 (JRE 1.8)
  • サーブレット コンテナー:Tomcat 8.0.20
  • 統合開発環境:Eclipse 4.4.2
  • Jaspersoft Studio 6.0.3

方針・前提条件

  • 適当なデータが埋め込まれた PDF を生成し、ブラウザーで表示します。
  • 帳票のデザイン(見た目の美しさなど)は重視しません。とにかく表示するのを目標とします。
  • 帳票に表示するデータは、手軽さを重視で CSV ファイルから取得します。データベースは準備が大変なので利用しないこととします。
  • Tomcat 関連の設定は完了していることとします。また、Web アプリケーションとしての最低限のフォルダー構成(WEB-INF フォルダーなど)は、作成済みとします。
  • PDF を作成する際、ファイル化すると後で消すのが面倒そうなので、バイナリ(バイト配列)として作成し、直接 HTTP のレスポンスとして返します。

処理の流れ

JasperReport での処理の流れ
処理の流れ

「帳票データ(今回はCSV ファイル)」「帳票レイアウト ファイル」「プログラム」の 3 点の準備が必要です。また、日本語を出力するためには、設定を変更する必要があります。これらについて、ひとつずつ説明しています。

帳票に出力するデータを準備する

適当な内容の CSV ファイルを用意します。今回は、とあるお寿司屋さんの Web サイトから、メニューを一部抜粋したものを用意しました。ファイル名は「SushiMenuData.csv」としました。列を特定するために、1 行目にヘッダーを入れておきます。

CATEGORY,NAME,PRICE,CALORIES
にぎり,【天然】熟成まぐろ,100,88
にぎり,【天然】漬けまぐろ,100,88
にぎり,【天然】ビントロ,100,83
にぎり,真だい,100,100
にぎり,はまち,100,118
にぎり,【天然】真いわし,100,122
にぎり,サーモン,100,92
にぎり,オニオンサーモン,100,122
にぎり,焼きはらす,100,93
にぎり,とろサーモン,100,83
にぎり,真いかジュレポン酢,100,78
にぎり,サーモンジュレポン酢,100,106
にぎり一貫(極旨一貫),【天然】あじ(一貫),100,54
にぎり一貫(極旨一貫),まぐろユッケ手巻き(一貫),100,94
にぎり一貫(極旨一貫),めかじきステーキ風(一貫),100,119
にぎり一貫(極旨一貫),【宇和島産】みかんぶり(一貫),100,68
にぎり一貫(極旨一貫),熟成 中とろ(一貫),100,65
にぎり一貫(極旨一貫),熟成 大とろ(一貫),200,83
にぎり一貫(極旨一貫),宝石生えび(一貫),100,45
ぐんかん,生しらす,100,106
ぐんかん,ねぎまぐろ,100,119
ぐんかん,まぐろユッケ,100,142
ぐんかん,味付いくら,100,94
ぐんかん,サラダ,100,161
ぐんかん,ツナサラダ,100,171
ぐんかん,7種のシーフードサラダ,100,165
ぐんかん,カラフトししゃもっこ,100,95
ぐんかん,瀬戸内しらすの黄金炊き,100,109
あぶり寿司・細巻き,あぶりサーモンてりマヨ,100,127
あぶり寿司・細巻き,あぶりチーズ豚カルビ,100,148
あぶり寿司・細巻き,鉄火巻,100,136
あぶり寿司・細巻き,きゅうり巻,100,120
あぶり寿司・細巻き,納豆巻,100,160
あぶり寿司・細巻き,かんぴょう巻,100,134
サイドメニュー,『特製玉子だれで食べる』魚介海鮮丼,680,576
サイドメニュー,イベリコ豚丼,400,601
サイドメニュー,7種の魚介醤油らーめん(関西),360,329
サイドメニュー,7種の魚介醤油らーめん(関東),360,329
サイドメニュー,きつねうどん,280,292
サイドメニュー,かけうどん(平日限定),130,227
サイドメニュー,チョコケーキ(関西),100,106
サイドメニュー,チョコケーキ(関東),100,106
サイドメニュー,フォンダン・ショコラムース,100,99
サイドメニュー,ニューヨークチーズケーキ,200,198
サイドメニュー,プレミアアイス珈琲,150,36
サイドメニュー,プレミアアイスラテ,150,94
サイドメニュー,季節のパイン,100,42

CSV ファイルを、Tomcat プロジェクトの任意の場所に配置します。今回は、以下のように配置しました。

帳票データ(CSV ファイル)の配置場所
帳票データ(CSV ファイル)の配置場所

これで、データの準備は完了です。次は、帳票レイアウトを作成します。

次回:【2】帳票レイアウトを作成する →

kpdn

お寿司とゲームと動物が好きな、フリーランスのエンジニアです。フロントエンドからインフラまで日々奮闘中です。最近は物忘れがどんどんがひどくなってきました。

コメントを残す