ADempiereの帳票は、JasperReportを使うことで多様なデザインの帳票を作成することができる。
JasperReportとは、OSSの帳票作成プログラムのことである。
.NetやVBに精通している人であれば、GrapeCity社のActiveReportをご存知かと思うが、それと同じような機能を持っているJava用のしかもオープンソースの帳票処理プログラムである。
このJapserReportをADempiereで使うときに、問題となるのがフォントである。
特にLinuxサーバに実装するとき、マイクロソフト系のフォントが使えないという問題がある。
そこで、IPAフォントを使うというのが解決策となる。
また、ADempiereのEARにIPAフォントを含ませることで、OSにIPAフォントをインストールしたりする手間が省けたり、違うOSにEARを持っていったときにフォントなしエラーが出るなどの問題がなくなる。
ここでは、IPAフォントをEARに含める方法をご紹介する。
■IPAフォントを使う設定(EAR内にIPAフォントを含める)
①クラスパスを通したフォルダに、jasperreports_extension.propertiesを用意して、中身を以下にする
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.ireport=org/compiere/fonts/fonts_extend.xml
②fonts_extend.xmlを以下のフォルダに作成する。
org/compiere/fonts
中身を以下にして、UTF-8で保存する。
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="IPA Pゴシック">
<normal>org/compiere/fonts/ipagp.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="IPAゴシック">
<normal>org/compiere/fonts/ipag.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="IPAexゴシック">
<normal>org/compiere/fonts/ipaexg.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="IPA P明朝">
<normal>org/compiere/fonts/ipamp.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="IPA明朝">
<normal>org/compiere/fonts/ipam.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
<fontFamily name="IPAex明朝">
<normal>org/compiere/fonts/ipaexm.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
</fontFamilies>
③②と同じフォルダに、②のxml内で指定したIPAのttfファイルを配置する。
■フォント変更作業(JasperReport内)
Jrxmlのソースを開いて、fontNameとpdfFontNameでIPAフォントを使用するように置換する。fontNameはフォント名、pdfFontNameはjarファイル名(パス不要)を指定。
<font fontName="MS 明朝" size="16" pdfFontName="HeiseiMin-W3" pdfEncoding="UniJIS-UCS2-HW-H"/>
↓↓
<font fontName="IPA明朝" size="16" pdfFontName="HeiseiMin-W3" pdfEncoding="UniJIS-UCS2-HW-H" isPdfEmbedded="true"/>
0 件のコメント:
コメントを投稿