PDFを配布するときはPDFのしおりを設定すると、アウトラインからPDFの内容にジャンプできて便利である。fo:bookmark-treeはしおりツリーを表現するFOである。XSL-FOプロセサはfo:bookmark-treeがあれば、その木構造からPDFのしおりを作成する。
fo:bookmark-treeはfo:rootの子供とする。順番はfo:layout-master-set、オプションのfo:declarationsの次、fo:bookmark-treeの順である。
fo:bookmark-treeの子供のfo:bookmarkが第1階層のしおり項目である。fo:bookmarkの子供としてfo:bookmark-titleを置き、しおりの項目に表示する文字列をその内容とする。fo:bookmark-titleは必須である。
fo:bookmarkのプロパティinternal-destinationプロパティでPDFの内部の行先を指定する。
| プロパティ値 | 説明 |
|---|---|
| 空文字列(初期値) | 行先なし |
| <idref> | PDF内部にある行先のIDを指定する。 |
fo:bookmarkのプロパティexternal-destinationプロパティでPDFの外部へのリンクを指定する。
| プロパティ値 | 説明 |
|---|---|
| 空文字列(初期値) | 行先なし |
| <uri-specification> | 行先の外部URIを指定する。 |
starting-stateプロパティで指定したしおり項目のサブツリーの初期状態を指定する。
| プロパティ値 | 説明 |
|---|---|
| show(初期値) | この項目のサブツリーがあれば開いた状態にする。 |
| hide | この項目のサブツリーは閉じた状態にする。 |
しおりを階層化するときはfo:bookmarkの子供にfo:bookmarkを置く。これを繰り返してしおりのツリーを構築する。
次は、2階層のしおりを作成した例である。目次と第2章のフォントをボールドに設定、また第2階層の初期状態を閉じる設定とする。
<fo:root>
<fo:layout-master-set>
…略…
</fo:layout-master-set>
<fo:bookmark-tree>
<fo:bookmark internal-destination="MARK001">
<fo:bookmark-title font-weight="bold">
目次</fo:bookmark-title>
</fo:bookmark>
<fo:bookmark internal-destination="MARK002"
starting-state="hide">
<fo:bookmark-title>第1章</fo:bookmark-title>
<fo:bookmark internal-destination="MARK003">
<fo:bookmark-title>1.1</fo:bookmark-title>
</fo:bookmark>
<fo:bookmark internal-destination="MARK004">
<fo:bookmark-title>1.2</fo:bookmark-title>
</fo:bookmark>
<fo:bookmark internal-destination="MARK005">
<fo:bookmark-title>1.3</fo:bookmark-title>
</fo:bookmark>
</fo:bookmark>
<fo:bookmark internal-destination="MARK006"
starting-state="hide">
<fo:bookmark-title font-weight="bold">
第2章</fo:bookmark-title>
<fo:bookmark internal-destination="MARK007">
<fo:bookmark-title>2.1</fo:bookmark-title>
</fo:bookmark>
<fo:bookmark internal-destination="MARK008">
<fo:bookmark-title>2.2</fo:bookmark-title>
</fo:bookmark>
</fo:bookmark>
<fo:bookmark internal-destination="MARK010"
starting-state="hide">
<fo:bookmark-title>付録</fo:bookmark-title>
<fo:bookmark internal-destination="MARK011">
<fo:bookmark-title>付録A</fo:bookmark-title>
</fo:bookmark>
<fo:bookmark internal-destination="MARK012">
<fo:bookmark-title>付録B</fo:bookmark-title>
</fo:bookmark>
</fo:bookmark>
<fo:bookmark
external-destination="http://www.antenna.co.jp/">
<fo:bookmark-title>
http://www.antenna.co.jp/</fo:bookmark-title>
</fo:bookmark>
</fo:bookmark-tree>
<fo:page-sequence>
…略…
</fo:root>
組版結果をPDFとして保存する。PDF Readerで開くと次のようなしおりができている。左がPDFを開いた(初期)状態で、右はしおりの第2階層まで開いた状態である。
