オープンソースのERP iDempiereに組み込まれているJasper Reportsでは、2014年1月時点では、日本語や中国語などのアジア圏の文字を表示しようとするとエラーとなってしまいます。
日本JasperServerユーザ会のサイトに、日本語や中国語をPDF形式でレポート表示する場合には、iTextAsianを使いましょうという内容のコンテンツが表示されていたので、それを参考にiDempiereのJasperReportsを日本語でも表示できるように改修したいと思います。
目次
まずは、iReportで作成したレポート定義をiDempiereから出力しようとして表示されるエラーを確認します。次のようなエラーが表示されます。
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
iReportのインストール先のmodulesフォルダのextフォルダの中に、iTextAsian.jarがあるのでコピーします。
![iTextAsian.jar](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i172acff69578928c/version/1389175183/itextasian-jar.png)
コピーしたiTextAsian.jarファイルを、"org.adempiere.base"プロジェクトの配下に貼り付けて配置します。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i6f67f5370789f498/version/1389175423/image.png)
iTextAsian.jarファイルを右クリックし、ビルドパスに追加します。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/ie0e6786c3927ca81/version/1389175671/image.png)
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i89eddfa944ff3d02/version/1389175772/image.png)
そうすると、参照ライブラリーにiTextAsian.jarが追加されます。
※.classpathファイルにパスが追加されます。
iTextAsian.jarをクラスパスに追加
![マニフェストエディターのランタイムタブ](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/ib6b3788643ad0dab/version/1389176817/%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%A9%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%BF%E3%83%96.png)
マニフェストエディターのランタイムタブのクラスパス設定で、iTextAsian.jarを追加します。そうすると、MANIFEST.MFファイルのBundole-ClassPathに追加されます。
![マニフェストエディターのMANIFEST.MFタブ](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/if25ddf0df078891f/version/1389176928/%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%AEmanifest-mf%E3%82%BF%E3%83%96.png)
iTextAsian.jarをバイナリ―ビルドに追加
![マニフェストエディーターのビルドタブ](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i06cd5508650dabc3/version/1389176316/%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E3%82%BF%E3%83%96.png)
マニフェストエディタのビルドタブのバイナリ―ビルドに、iTextAsian.jarを追加します。そうすると、build.propertiesファイルの"bin.includes"にiTextAsian.jarが追加されます。
![マニフェストエディターのbuild.propertiesタブ](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i7e485cc068a36607/version/1389176451/%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%AEbuild-properties%E3%82%BF%E3%83%96.png)
org.adempiere.ui.zkにある.tomcatpluginファイルの<webClassPathEntries>要素の下に、<webClassPathEntry>/tools/lib/iTextAsian.jar</webClassPathEntry>を追加します。
![org.adempiere.ui.zkプロジェクトの.tomcatpluginファイル](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i39e6421cbb3884d5/version/1389178731/org-adempiere-ui-zk%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE-tomcatplugin%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.png)
※.tomcatpluginは、通常見えないので、"ナビゲーター"を使用して表示します。
【補足説明】.tomcatpluginファイルの編集
org.adempiere.ui.zkにある.tomcatpluginファイルの<webClassPathEntries>要素の下に、<webClassPathEntry>/tools/lib/iTextAsian.jar</webClassPathEntry>を追加する事は、実際にはjasperReportを日本語化対応するのには不要な作業かもしれません・・・。時間がある時に詳細を調査して行きたいと思います。
iDempiereからJasperReportsを使用してPDFでレポートを出力する事が確認できます。
![](https://image.jimcdn.com/app/cms/image/transf/none/path/sfe3be30db12270da/image/i9bc1e8976b97384e/version/1389179599/image.png)