そこで今回は、同様に"ようこそ!"と表示してみます。
Apache FOPは、デフォルトのままでは日本語フォントに対応していません。
そこで、設定用のXMLファイルを用意します。
今回は一番簡単な、TTFファイルを使用するパターンを解説します。
jpfont.xml
<?xml version="1.0" ?>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="C:\windows\fonts\simhei.ttf">
<font-triplet name="JpFont" weight="normal" style="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
<fop version="1.0">
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="C:\windows\fonts\simhei.ttf">
<font-triplet name="JpFont" weight="normal" style="normal" />
</font>
</fonts>
</renderer>
</renderers>
</fop>
※ SimHeiは実際には中国語フォントですが、Windows標準でTTF形式の日本語対応フォントはSimHeiしか用意されていないようです。もし他にTTF形式の日本語フォントがあれば、そちらを使用しても構いません。
font-tripletタグのname属性は、任意の名前に設定が可能です。
次に、文書の本体であるXSLファイルを変更します。
welcome.xsl
<?xml version="1.0" encoding="Shift_JIS"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="JpFont">ようこそ!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-width="210mm" page-height="297mm">
<fo:region-body region-name="xsl-region-body" margin="2cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="JpFont">ようこそ!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
前回の内容から変更した箇所を太字にしています。
最初の行にあるencording属性は、実際のXSLファイルのエンコーディングに合わせて変更してください。
どちらのファイルもfop.batのフォルダの直下に保存してあるものとします。
今回は追加設定ファイル(XML)を読み込む必要があるので、-cオプションを使います。
fop welcome.xsl welcome.pdf -c jpfont.xml
で実行してください。
"ようこそ!"
確認できましたか?
0 件のコメント:
コメントを投稿