DITA-OT1.4.2.1で日本語コンテンツをPDF出力するための修正方法

PDFに日本語フォントを埋め込むための修正を纏めてみた。もっとスマートな方法があればフォローをお願いしたい。

dita2fo-shell_template.xslの修正

このファイルがDITAからFOへ変換をしている。ここでフォントファミリーの追加を行なう。
具体的には

font-family="Helvetica"

という記述が複数箇所あるので

font-family="Gothic,Mincho,Helvetica"

にすべて置き換える。これで実行をすると生成されるfoファイルのフォントファミリーに"Gothic,Mincho,Helvetica"の3つが記述されるようになる。しかしPDFにはフォントがまだ埋め込まれない。

userconfig.xmlとフォントメトリックスの作成

昨日のFOP0.20.5で日本語に書いてあるように日本語フォントのフォントメトリックスを作成する。
ここではmsgothic.xmlとmsmincho.xmlの二つのファイルを生成した。
userconfig.xmlはこんな感じ。

<fonts>
 <font metrics-file="msgothic.xml" embed-file="C:\WINDOWS\Fonts\msgoth04.ttc" kerning="yes">
    <font-triplet name="Gothic" style="normal" weight="normal" />
    <font-triplet name="Gothic" style="normal" weight="bold" />
    <font-triplet name="Gothic" style="italic" weight="normal" />
    <font-triplet name="Gothic" style="italic" weight="bold" />
 </font>
 <font metrics-file="msmincho.xml" embed-file="C:\WINDOWS\Fonts\msmin04.ttc" kerning="yes">
    <font-triplet name="Mincho" style="normal" weight="normal" />
    <font-triplet name="Mincho" style="normal" weight="bold" />
    <font-triplet name="Mincho" style="italic" weight="normal" />
    <font-triplet name="Mincho" style="italic" weight="bold" />
 </font>
</fonts>

ちなみにconfigurationタグは要らない。
作成したuserconfig.xml,msgothic.xml,msmincho.xmlはdita.dirに置く。ここは変更できると思うがuserconfig.xmlのメトリックスファイルを相対パスで指定しているのでdita.dirかbasedirに置いてみた。それ以外の置いた場合の影響についてはここでは気にしない。

build_dita2pdf.xmlの修正

userconfig.xmlを呼び出すためにbuild_dita2pdf.xmlの修正を次のようにした。

...
  <!-- Build PDF from FO using FOP, need to include FOP, Avalon, 
    and Batik relevant jar files in CLASSPATH -->
  <target name="dita.fo2pdf" if="hasFOP"
    description="Build PDF from FO using FOP">
    <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop" />
    <property name="args.fo.userconfig" value="${dita.dir}\userconfig.xml"/>   <!-- 追加したところ -->
    <antcall target="dita.fo2pdf.userconfig" />
    <antcall target="dita.fo2pdf.nouserconfig" />
  </target>
...

要はこの後につづくところで"args.fo.userconfig"に応じて動作を判別しているので指定をしてみた。もう少しスマートな修正方法があると思うのだけどとりあえず。

実行

C:\DITA-OT1.4.2.1-ja>java -jar lib/dost.jar /i:pizza1Install\pizza1Install.ditamap /transtype:pdf

コマンドラインではこれで日本語のPDFが作成できるようになりますよ。