手順としては、以下のようになります。
DocBook (.xml) + XSL (.xsl) → [xsltproc] → FO (.fo) → [FOP] → PDF (.pdf)
以下のような XSL (.xsl) ファイルを作成します。
docbook-pdf.xsl
:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"> <xsl:import href="c:/cygwin/usr/share/docbook-xsl/fo/docbook.xsl"/> <xsl:param name="chunker.output.encoding" select="'Shift_JIS'"/> <xsl:param name="fop.extensions" select="1"/> <xsl:param name="paper.type" select="'A4'"/> <xsl:param name="ulink.show" select="0"/> <xsl:param name="draft.mode" select="'no'"/> <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> <xsl:param name="hyphenate">false</xsl:param> <xsl:param name="title.font.family" select="'MS-Gothic'"/> <xsl:param name="body.font.family" select="'MS-Mincho'"/> <xsl:param name="sans.font.family" select="'MS-Gothic'"/> <xsl:param name="monospace.font.family" select="'MS-Mincho'"/> </xsl:stylesheet>
フォントを xsl:param name="要素.font.family" select="'フォント名'"/ として指定しています。このフォント名は FOP のユーザー・コンフィグレーション・ファイルで定義したフォント名を指定します。フォント名指定を誤ると、FOP がフォントを見つけられず、作成される PDF では、該当箇所が "#" と表示されてしまいます。
DocBook 形式ファイルから FO ファイルを作成します。
$ xsltproc -o helloworld.fo ./docbook-pdf.xsl helloworld.xml Making portrait pages on A4 paper (210mmx297mm)
または…
$ xsltproc ./docbook-pdf.xsl helloworld.xml helloworld.fo Making portrait pages on A4 paper (210mmx297mm)
以下のように実行します。
$ fop helloworld.fo helloworld.pdf [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] FOP 0.20.5 [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] building formatting object tree [INFO] setting up fonts [INFO] [1] [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] [2] [INFO] [3] [INFO] [4] [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser [INFO] [1] [INFO] Parsing of document complete, stopping renderer
1 ページ目: 表紙が作成されている。左側のしおりも DocBook の階層に沿って作成されている。
2 ページ目: 目次が作成されている。
3 ページ目: 実際の文章部分。
#1703. 春を感じるご馳走 - 春竹の子と干し椎茸の醤油煮込み + 桜海老と春野菜の土鍋ご飯 山椒風味 @一楽.横浜中華街:
2018-03-26 横浜中華街・中華街大通りの一楽にて晩飯。一品目は、春メニューから春竹の子と干し椎茸の醤油煮込み。これは・・・素食(スゥシー,精進料理)の紅焼烩双冬かな? 紅焼(ホンシャオ)ともちょっと違うような、甘い香りのする焼付け具合が肉厚の干し椎茸とよ...
#1702. 福建料理 (閩菜) の定番麺料理 - 燜麺 (海鮮煮込みそば) @華錦飯店.横浜中華街:
2018-03-25 横浜中華街・市場通りの華錦飯店(かきんはんてん)にて晩飯。こちらは隣の魚屋が経営母体の中華料理店。このため海鮮料理に強いと言われている。また、経営者の出身地が福建とのことで、一般的な中華料理を中心に、福建料理(閩菜)を少し加えたメニュー構成...
#1701. 横浜中華街で中国茶 - 龍井茶 @隆記.横浜中華街:
2018-03-25 オフィスでは、だいたい中国茶を飲んでいる。自分用の中国茶マグ・カップで、茶葉の種類を変えつつ何杯も飲んでいるが、これがコーヒーよりも精神バランスに良い感じで、リラックスして、かつ、集中できる感じ。正念場・修羅場・短時間でいいから集中がほしい...
#1700. アットホームな広東料理店 - 春巻 + 咸蛋蒸肉餅 (塩タマゴと豚肉の蒸し) @龍鳳酒家.横浜中華街:
2018-03-24 横浜中華街・中山路の龍鳳酒家(りゅうほうしゅか)にて晩飯。こちらは家庭的なお店で、広東料理(粤菜)の家庭料理(家郷菜)が得意。一品目はビールの酒肴として春巻をオーダー。中身がしっかりと詰まった春巻は、カリッとかじると熱々の中身が口の中に弾け...
#1699. 横浜・元町で米国式スタンダードな朝食を - ブレックファスト・プレート + 玉子1個追加 @バイ・ミー・スタンド.代官坂.元町.横浜:
2018-03-24 横浜・元町・代官坂のバイ・ミー・スタンド(BUY ME STAND)元町店 にて朝食。ここはユニークかつ美味しいサンドイッチを出す店。朝8時から開店していて、ゴージャスな朝食が食べられるので、朝から開店している飲食店が少ない元町近辺では貴重...