grails doc --pdf で日本語を使う

Grails 2.5

itext-2.0.8を使用しているため、itext-asianは古いものを使用する。とりあえず下記をダウンロードしてlibに入れる。
http://www.java2s.com/Code/JarDownload/iTextAsian/iTextAsian.jar.zip

フォントキャッシュを書き換えてからgrails doc --pdfさせるスクリプトを作成する。

grails create-script doc-pdf

scripts/DocPdf.groovy

import org.xhtmlrenderer.pdf.ITextRenderer

import com.lowagie.text.pdf.BaseFont

includeTargets << grailsScript("_GrailsDocs")

setDefaultTarget("docPdf")

target(docPdf:"grails doc-pdf") {

    // BaseFont.fontCacheを初期化
    new ITextRenderer() 

    // fontCacheをすべて日本語フォントにしてしまう
    def bf = BaseFont.createFont('HeiseiMin-W3', 'UniJIS-UCS2-H', BaseFont.NOT_EMBEDDED)
    BaseFont.fontCache.keySet().each {
        BaseFont.fontCache.put(it, bf)
    }

    // --pdfを指定したときと同じように動作させる
    argsMap.pdf = true

    // 丸投げ
    depends(docs)
}

実行する。

grails doc-pdf

コード部分はゴシック、文章は明朝とかいろいろあると思うけど、とっかかりはこんな感じ。