由docbook生成pdf,且基本上沒有中訪問題的簡單方法:

將hibernate文檔部分源碼(:pserver:anonymous@cvs.sourceforge.net:/cvsroot/hibernate下的doc/reference)取下,將zh-cn目錄下的xml文件用自已的代替,修改zh-cn/styles/fopdf.xsl,將與hibernate相關的部分改為自已的內容,主要是version和logo,通過在文件中查找hibernate很容易找得到,用原來的fopdf.xsl生成的pdf的subtitle為亂碼,將fopdf.xsl文件中的

<fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm">
                                <xsl:value-of select="bookinfo/subtitle"/>
                            </fo:block>
                            <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
                                Version:
                                <xsl:value-of select="bookinfo/releaseinfo"/>
                            </fo:block>

修改為

<fo:block font-family="simsun" font-size="22pt" padding-before="10mm">
                                <xsl:value-of select="bookinfo/subtitle"/>
                            </fo:block>
                            <fo:block font-family="simsun" font-size="12pt" padding="10mm">
                                Version:
                                <xsl:value-of select="bookinfo/releaseinfo"/>
                            </fo:block>

換一下subtitle的字體,就不會有亂碼了.刪除en目錄,修改一下build.xml,去掉<antcall target="lang.all"><param name="lang" value="en"/></antcall>,只生成中文結果.

有點難受的是標點還是有可能會出現在句首.

參考:

http://www.donews.net/limodou/archive/2004/04/01/9917.aspx

http://www.blogcn.com/user6/caoxg/blog/2402234.html


文章來源:http://spaces.msn.com/members/zzzhc/Blog/cns!1pPbKg7hHgS7AKKQm6CWG1ZQ!106.entry