BoostBook with FOP
BoostBookでPDF作成に挑戦していたんですが、今日ようやく動きました。
ちなみに、動かなかった理由はBoostBookの書式が間違っていただけでした。
今日の成果物
以下、設定メモ。
まず、日本語フォントを用意。
set Path=C:\Program Files\Java\jdk1.5.0_06\bin;%Path% cd C:\tools\fop\conf java -cp ..\build\fop.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS PGothic" C:\WINDOWS\Fonts\MSGOTHIC.TTC mspgothic.xml java -cp ..\build\fop.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Gothic" C:\WINDOWS\Fonts\MSGOTHIC.TTC msgothic.xml
これを設定ファイルに書きます。ここではjp-userconfig.xmlとしました。
<configuration> <fonts> <font metrics-file="C:\tools\fop\conf\mspgothic.xml" embed-file="C:\WINDOWS\Fonts\MSGOTHIC.TTC" kerning="yes"> <font-triplet name="MS-PGothic" style="normal" weight="normal"/> <font-triplet name="MS-PGothic" style="normal" weight="bold"/> <font-triplet name="MS-PGothic" style="italic" weight="normal"/> <font-triplet name="MS-PGothic" style="italic" weight="bold"/> </font> <font metrics-file="C:\tools\fop\conf\msgothic.xml" embed-file="C:\WINDOWS\Fonts\MSGOTHIC.TTC" kerning="yes"> <font-triplet name="MS-Gothic" style="normal" weight="normal"/> <font-triplet name="MS-Gothic" style="normal" weight="bold"/> <font-triplet name="MS-Gothic" style="italic" weight="normal"/> <font-triplet name="MS-Gothic" style="italic" weight="bold"/> </font> </fonts> </configuration>
fop.batをjp-fop.batにコピーして、jp-userconfig.xmlを使うように修正。
java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop -c C:\tools\fop\conf\jp-userconfig.xml %1 %2 %3 %4 %5 %6 %7 %8
最後にuser-config.jamにFOPとJavaの設定を追加。
using fop : C:\\tools\\fop\\jp-fop.bat : "\"C:\\Program Files\\Java\\jdk1.5.0_06\"" ;
で、ようやく本題。Jamfile.v2に以下の設定を追加。
<xsl:param>draft.mode=no <xsl:param>body.font.family=MS-PGothic <xsl:param>dingbat.font.family=MS-PGothic <xsl:param>sans.font.family=MS-PGothic <xsl:param>title.font.family=MS-PGothic <xsl:param>monospace.font.family=MS-Gothic <xsl:param>l10n.gentext.language=ja <xsl:param>hyphenate=false
フォントと言語を変更して、hyphenateをオフにします。hyphenateをオフにしないと、論理行の途中で改行が入らないので、はみ出した部分が表示されません。(やってみると分かります)
あとは、docディレクトリで
bjam pdf
とすれば、一部表示が変ですが、一応日本語のPDFができます。
この方法だとフォントが埋め込まれてしまうので、個人利用に留めておくのがよいでしょう。