JasperReportsをバッチ処理のコマンドラインプログラムで出力する(JasperStarter) ~ JasperReports
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で見るとき
jasperstarter pr test_A4xml.jrxml -f view -t csv --data-file yasai_utf8.csv --csv-first-row
jasperstarter pr test_A4xml.jasper -f view -t csv --data-file yasai_utf8.csv --csv-first-row
PDFに出力するとき
jasperstarter pr test_A4xml.jrxml -f pdf -t csv --data-file yasai_utf8.csv --csv-first-row
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データを読みこみ、出力命令を入れます
import java.io.File; import java.io.FileInputStream; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JasperRunManager; import net.sf.jasperreports.engine.data.JRCsvDataSource; public class Sample { public static void main(String[] args) { //パラメータ設定 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); } }
ディスカッション
コメント一覧
まだ、コメントがありません