【iDempiere Lab】Jasper Reportの日本語化対応手順

 オープンソースのERP iDempiereに組み込まれているJasper Reportsでは、2014年1月時点では、日本語や中国語などのアジア圏の文字を表示しようとするとエラーとなってしまいます。

 日本JasperServerユーザ会のサイトに、日本語や中国語をPDF形式でレポート表示する場合には、iTextAsianを使いましょうという内容のコンテンツが表示されていたので、それを参考にiDempiereのJasperReportsを日本語でも表示できるように改修したいと思います。

オープンソースのERP JPiere

エラー表示

 まずは、iReportで作成したレポート定義をiDempiereから出力しようとして表示されるエラーを確認します。次のようなエラーが表示されます。

Jasper Reportsを表示しようとした時に表示されるエラー
Jasper Reportsを表示しようとした時に表示されるエラー

org.adempiere.webui.window.ZkJRViewer init

SEVERE: Could not load the following font : 

pdfFontName   : HeiseiKakuGo-W5

pdfEncoding   : UniJIS-UCS2-HW-H

isPdfEmbedded : false

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 

pdfFontName   : HeiseiKakuGo-W5

pdfEncoding   : UniJIS-UCS2-HW-H

isPdfEmbedded : false

Step1:iTextAsian.jarをorg.adempiere.baseのプロジェクトに配置する

 iReportのインストール先のmodulesフォルダのextフォルダの中に、iTextAsian.jarがあるのでコピーします。

iTextAsian.jar
iTextAsian.jar

 コピーしたiTextAsian.jarファイルを、"org.adempiere.base"プロジェクトの配下に貼り付けて配置します。

Step2:iTextAsian.jarをビルドパスに追加する

 iTextAsian.jarファイルを右クリックし、ビルドパスに追加します。

 そうすると、参照ライブラリーにiTextAsian.jarが追加されます。

 

※.classpathファイルにパスが追加されます。

Step3:org.adempiere.baseのマニフェストファイルを編集します

iTextAsian.jarをクラスパスに追加

マニフェストエディターのランタイムタブ
マニフェストエディターのランタイムタブ

 マニフェストエディターのランタイムタブのクラスパス設定で、iTextAsian.jarを追加します。そうすると、MANIFEST.MFファイルのBundole-ClassPathに追加されます。

マニフェストエディターのMANIFEST.MFタブ
マニフェストエディターのMANIFEST.MFタブ

iTextAsian.jarをバイナリ―ビルドに追加

マニフェストエディーターのビルドタブ
マニフェストエディーターのビルドタブ

 マニフェストエディタのビルドタブのバイナリ―ビルドに、iTextAsian.jarを追加します。そうすると、build.propertiesファイルの"bin.includes"にiTextAsian.jarが追加されます。

マニフェストエディターのbuild.propertiesタブ
マニフェストエディターのbuild.propertiesタブ

Step4:org.adempiere.ui.zkの.tomcatpluginの編集

 org.adempiere.ui.zkにある.tomcatpluginファイルの<webClassPathEntries>要素の下に、<webClassPathEntry>/tools/lib/iTextAsian.jar</webClassPathEntry>を追加します。

org.adempiere.ui.zkプロジェクトの.tomcatpluginファイル
org.adempiere.ui.zkプロジェクトの.tomcatpluginファイル

 ※.tomcatpluginは、通常見えないので、"ナビゲーター"を使用して表示します。

【補足説明】.tomcatpluginファイルの編集

 org.adempiere.ui.zkにある.tomcatpluginファイルの<webClassPathEntries>要素の下に、<webClassPathEntry>/tools/lib/iTextAsian.jar</webClassPathEntry>を追加する事は、実際にはjasperReportを日本語化対応するのには不要な作業かもしれません・・・。時間がある時に詳細を調査して行きたいと思います。

Step5:確認

 iDempiereからJasperReportsを使用してPDFでレポートを出力する事が確認できます。

参考サイト

関連するコンテンツ