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

JasperReport 6 と Java を使って PDF を出力しました。試行錯誤しまくりました。忘れないように、一連の手順をメモしておきます。

目次

この記事を書いてる時点で、Java 自体を勉強し初めて数日間しか経っておらず、情けないことに JDK とか JRE とかクラスパスとか「(´・ω・`)?」てな状態でありまして、前提知識がほぼ無い状態ですので、勘違いとか間違いがたくさんあると思います。おかしな点があったら、ご指摘いただけると嬉しいです。

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 のレスポンスとして返します。

JasperReports では、PDF の出力部分は iText というライブラリーで処理されています。 JasperReports 6 では iText のバージョン 5 が使用されていますが、このバージョンは AGPL ライセンスとなっています。ただ、JasperReports の API を経由して使用される場合には、特例として LGPL ライセンスでの使用が可能であるようです。

しかしながら、ライセンス関連につきまして、私の方で責任を負いかねますので、使用される方の自己責任にてお願いします

参考

処理の流れをざっくりと

create-pdf-by-jasperreports6-and-java_r9lb2nh6

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

帳票に埋め込むデータを準備する

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

SushiMenuData.csv

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

create-pdf-by-jasperreports6-and-java_tou9gq55

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

(2) 帳票レイアウトを作成する →

KPDN

プログラミングとゲームが好きな、しがないにゃんこ好きです。わんこも同じぐらい好きです。最近、物忘れどんどんが酷くなってきた。

コメントを残す