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階層まで開いた状態である。