« 2006年11月03日 | メイン | 2006年11月05日 »
2006年11月04日
「しおり」のすすめ (4) XSL-FO における「しおり」
ちなみに、XSL-FOの仕様でも、V1.0では「しおり」がありませんでした。このため、XSL-FOの組版ソフトを開発している人たちが、それぞれ、独自にXSL-FOの仕様を拡張して「しおり」機能を独自に実装してしまいました。このためXSL-FO V1.0 ではPDFの「しおり」作成機能は、XSL-FOプロセサ毎の非互換拡張となっています。
今から考えますと、XSL-FOの仕様を作った時にはPDF出力よりも、紙への出力という意図の方が強かったのではないでしょうか。このため恐らく「しおり」ためのFOを忘れてしまったのではないかと思います。
XSL-FO V1.1では、いろいろなXSL-FO組版ソフトの機能を調査したうえで、「しおり」作成のためのFOが標準仕様として盛り込まれました。V1.1対応のXSL-FOプロセサでは、「しおり」作成機能は標準準拠となるわけです。
XSL-FO V1.1では「しおり」を次のように表します。
FOの例:Download file
このFOを組版してPDFにした結果は次のようになります。
このようにXSL-FOでの「しおり」の仕様は簡単です。
(1) PDFに現れる「しおり」ツリーと同じツリーをfo:bookmark-tree以下に作ります。
(2) 「しおり」の一項目をfo:bookmarkで表します。
(3) 「しおり」の見出しの文字列ををfo:bookmark-titleの内容テキストで表し、
(4) 「しおり」をクリックした時に表示する(ジャンプ先)本文をfo:bookmarkのプロパティとしてinternal-destination(外部リンクは、external-destination)で表します。
ですので、fo:bookmark-tree以下のツリー構造は、PDFの「しおり」のツリーそのものとなります。
このようなFOを作るスタイルシートを予め用意しておけば、XSL-FO組版ソフトを使うことで、PDF出力時に自動的に「しおり」が作られることになります。
投票をお願いいたします