Node.jsからの帳票出力

1,241 views
Skip to first unread message

Yasuyuki Uno

unread,
Jan 16, 2015, 2:34:05 AM1/16/15
to japan-jasperse...@googlegroups.com
宇野です。

最近サーバサイドにNode.jsを使い始めたのですが、既存の帳票資産を活用したく、Node.jsからJasperReport帳票を出力しようとしています。

一応以下の手順で出力できたことは出来たのですが、日本語の出力がイマイチというかできてないです。
・JSONデータソースに日本語文字を渡すと内部で使っているJacksonかどこかでエラーになる(パラメーター部だけは日本語出力できることを確認済みです)。

・MySQLとPostgresSQLからは出力できるらしいがそれ以外のDBもデータソースにできないか。OracleとかOracleとか。それとCSVやExcelもデータソースにしたい。
どうしてもCSVとかOracleをデータソースにできないのであれば、Node.jsからOracleをselectした結果のJSONをデータソースとして使ってもいいんですが、
先述の通りJSONデータソース時に日本語を渡すとエラーになります。

0.Node.js+Expressの環境があるという前提です。

1.node-jasperモジュールの導入
Readmeを読む限りでは、DBはMySQLかPostgreSQLに対応しているようです。
とりあえずDB無しでJSONデータソースから出力します。

2.iReport5.6.0の導入。
僕はiReport3.xを使っていましたが、JSONデータソースに対応していないようなので新しいバージョンを導入。
Jasper Studioでも良いのでしょうが、使ったことないので今回はパス

https://github.com/agmoyano/node-jasper/tree/master/json_example
ここのサンプルのjrxmlを開いて、PDF encodingとPDF Fontを日本語出力用(Uni-JISなんちゃらとHeiseiKakuGo)に書き換えてコンパイルします。

3.JasperReports Library5.6.0の導入
Javaの場合、jasperreports-5.6.0.jarというファイルだけあればいいですが、Node.jsから出力するには
どうやらJasperReports Libraryのプロジェクトフォルダが丸ごと欲しいようでしたので、jasperreports-5.6.0-project.zipをダウンロードして解凍します。
日本語を出力できるようにするために、jasperreports-5.6.0\libフォルダにiTextAsian.jarを突っ込んでクラスパスに通します。
解凍したフォルダはプロジェクトのroutesフォルダ直下に突っ込みました。

4.サーバサイドプログラム作成
https://github.com/agmoyano/node-jasper/blob/master/json_example/sample.js
このソースをほぼ流用できますが、pathは
jasperreports-5.6.0を置いた場所に合わせておくこと。
パラメータだけは日本語を設定しても正しく出力されます。(パラメーター設定箇所は data: { language: 'spanish' } の部分)


興味がある方がいれば是非試してみて下さい。
なんとか日本語を出力したいです・・・。
最悪Javaでプログラム書いて、Node.js経由でTomcatにリクエスト送るかあるいは外部コマンドとして実行するかということになってしまうのかも知れないですけど、あまり面白くないなと。

Hitoshi Ozawa

unread,
Jan 17, 2015, 9:03:00 PM1/17/15
to japan-jasperse...@googlegroups.com
小沢です。
商用版になってしまいますが、JaspersoftからVisulize.jsっと言うJavaScriptライブラリが提供されています。
これは日本語が使えるようにしました。別のスレッドにも書きましたが、日本語Windows環境で動作しなかったのでJaspersoftに連絡をしていましたが、対応が出来ず、最終的にはまた私の方で対応策を提出することになってしまいました。

iReport及びVisualize.jsはただJasperReports Server のAPIを呼び出しています。コミュニティ版でもこのAPIはありますので、node.jsを使うWebページを作成される場合でも、レポート作成はこのAPIを使った方が簡単だと思います。このAPIの日本語対応も私の方で行いました。(^^)v

小沢

2015年1月16日 16:34 Yasuyuki Uno <ferrar...@hotmail.co.jp>:

--
このメールは Google グループのグループ「Japan JasperServer User Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-u...@googlegroups.com にメールを送信してください。
このグループに投稿するには japan-jasperse...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/japan-jasperserver-user-group からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Yasuyuki Uno

unread,
Jan 18, 2015, 7:09:54 PM1/18/15
to japan-jasperse...@googlegroups.com
宇野です。

JasperReports Serverは導入していないため、JasperReports Libraryのみの利用で出力したいなと思っています。
先週末にnode-jasperの開発者の方にメールを送り、向こうでも試してみるとは返事は来ましたが・・・


2015年1月18日日曜日 11時03分00秒 UTC+9 hozawa:
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-user-group+unsub...@googlegroups.com にメールを送信してください。

Yasuyuki Uno

unread,
Jan 18, 2015, 11:15:04 PM1/18/15
to japan-jasperse...@googlegroups.com
node-jasperの開発者の方から再現手順を教えてくれと言われたので日本語の出力方法及び、データセット用のサンプルJSONファイルを送付しました。
JasperReports Serverは使ったことはありませんが、よくよく考えてみると確かに悪くないようにも思えます。

できればライブラリのみでなんとかしたいですが、選択肢として検討いたします。

宇野

2015年1月19日月曜日 9時09分54秒 UTC+9 Yasuyuki Uno:

hozawa

unread,
Jan 25, 2015, 10:17:03 PM1/25/15
to japan-jasperse...@googlegroups.com
小沢です。

JasperReports Serverのコミュニティ版でもレポート生成用のAPIを使うことができます。PDFの他にもHTML、XLSXなどJasperReportsが対応している形式にも出力するjことができるので、システム開発がより簡単にできるようになると思います。

Tibco Jaspersoftと連絡を取って、2015年春にリリースを予定されている6.1にはコミュニティ版及びプロフェショナル版の完全マルチバイト対応を目指しています。

最近は海外でもJasperReports Serverをスタンドアロンで使うっと言うよりも、レポーティング・サービス用のバックエンド・サーバとして、既存のWebサイトにレポートを組み込むようになって来ています。

小沢

2015年1月19日月曜日 13時15分04秒 UTC+9 Yasuyuki Uno:

Yasuyuki Uno

unread,
Apr 5, 2015, 10:18:13 PM4/5/15
to japan-jasperse...@googlegroups.com
やはりちょっと難しそうなのでNode.jsからJasperReports ServerのAPIを叩く方向でいこうと思います。

小沢さんも以前フォーラムにポストしていたようですが、iReport5.6.0で作った帳票はJasperReports Server5.6.1で使えるのでしょうか?
https://community.jaspersoft.com/questions/843445/does-ireport560-work-jasperreports-server-561

宇野


2015年1月26日月曜日 12時17分03秒 UTC+9 hozawa:

Hitoshi Ozawa

unread,
Apr 8, 2015, 5:10:20 PM4/8/15
to japan-jasperse...@googlegroups.com
宇野さん、

小沢です。

以前に確認のために、Jaspersoft Supportに問合せたことがあります。

iReport5.6.0で作った帳票はJasperReports Server5.6.1で使えるのでしょうか?

iReport/StudioとServerのバージョン/リビジョンが合っていないと、使えない機能があります。
ただし、同じバージョン(例:5.6.x)であれば、アップロードすることは可能のはずです。

バージョンが異なると、アップロードが出来なくなる場合があります(APIが異なっているため)。

iReportは今年をもってサポート切れにもなるので、Studioに切り替えることを推奨します。

2015年4月6日 11:18 Yasuyuki Uno <ferrar...@hotmail.co.jp>:
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-u...@googlegroups.com にメールを送信してください。

Yasuyuki Uno

unread,
Apr 10, 2015, 3:13:08 AM4/10/15
to japan-jasperse...@googlegroups.com
小沢さん、ありがとうございます。

iReportのバージョンを上げるだけなら他の開発者にも受け入れられそうなのですが、
Studioに切り替えるのは今回は難しいかも知れません。

なので5.6を採用しようと考えています。
合間を見つけてサーバーを設定し、また報告致します。



2015年4月9日木曜日 6時10分20秒 UTC+9 hozawa:

Hitoshi Ozawa

unread,
Apr 13, 2015, 4:47:49 PM4/13/15
to japan-jasperse...@googlegroups.com
小沢です。

5.6.1は5.6.0のバグフィックス版ですので、5.6.0には少しバグがありますので注意してください。
6.xは新規機能が追加されましたが、バグが多いので推奨していません。

小沢

2015年4月10日 16:13 Yasuyuki Uno <ferrar...@hotmail.co.jp>:
このグループから退会し、グループからのメールの配信を停止するには japan-jasperserver-u...@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages