JasperReportsをPDF,プリンタに出力するためには、Javaでプログラムを作り実行するのが一般的です。
しかし、javaの開発する環境がない場合などに、出力するツールがあると便利です。
コマンドラインベースで出力できるツールが「JasperStarter」です。
http://jasperstarter.cenote.de/
ダウンロードとインストール
ダウンロードはsourceforgeからです。
https://sourceforge.net/projects/jasperstarter/files/
今回はzipファイルを選びました。
適当なフォルダに展開すれば使用できます。
日本語フォント対応
インストールしただけでは日本語フォントを使用するとエラーがでます。
そこでJasperStudioでFontのjarファイルを作成します。
プロジェクトを選び右クリック
プロパティを選ぶ
Font->書体を選び->Exportし、適当な名前で保存します。ipafont.jarにしました。
これをjasperstarterのjdbcに入れれば準備完了です。
実行サンプル
テンプレートファイルもしくはコンパイル済みのjasperファイルとCSVデータを指定します。
ヘッダ付きのCSVのため、オプションも付加しています。
内蔵viewerで見るとき
1 |
jasperstarter pr test_A4xml.jrxml -f view -t csv --data-file yasai_utf8.csv --csv-first-row |
1 |
jasperstarter pr test_A4xml.jasper -f view -t csv --data-file yasai_utf8.csv --csv-first-row |
PDFに出力するとき
1 |
jasperstarter pr test_A4xml.jrxml -f pdf -t csv --data-file yasai_utf8.csv --csv-first-row |
1 |
jasperstarter pr test_A4xml.jasper -f pdf -t csv --data-file yasai_utf8.csv --csv-first-row |
これでjavaのプログラミング無しでJasperStudioで作成したテンプレートで印刷またはPDF出力ができます。
バッチ処理に組み込むことができるので、自動化も進められます。
javaでプログラムをするときの参考サイト
https://qiita.com/AkihiroTakamura/items/da7f7ef2d7da21a17ef1
https://www58.atwiki.jp/chapati4it/pages/118.html
必要なライブラリをインポートしてCSVデータを読みこみ、出力命令を入れます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<span class="kn">import</span> <span class="nn">java.io.File</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.io.FileInputStream</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.HashMap</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.Map</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">net.sf.jasperreports.engine.JasperRunManager</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">net.sf.jasperreports.engine.data.JRCsvDataSource</span><span class="o">;</span> <span class="kn"> public class Sample { public static void main(<a href="http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string">String</a>[] args) { </span> //パラメータ設定 Map<String, Object> parameters = new HashMap<String, Object>(); paramMap.put("ReportPara", "パラメータ"); //パラメータ不要のとき Map<String, Object> parameters = new HashMap<>(); //CSVデータソースの定義 JRCsvDataSource dataSource = new JRCsvDataSource(new FileInputStream(new File("input.csv"))); dataSource.setUseFirstRowAsHeader(true); //PDF出力 JasperRunManager.runReportToPdfFile("tempalate.jasper", "output.pdf", parameters, dataSource); } } |