はじめに

テキストファイルを印刷(PDF化)するには、何らかの印刷ソフトを使い、印刷する用紙の大きさや文字の大きさなどレイアウトを指定する。それと同じように、XMLドキュメントを印刷するにもレイアウト指定が必要である。

XSL-FO(Extensible Stylesheet Language)は、XMLを印刷するためのレイアウト指定用標準言語の一つである。そして、XSL-FOドキュメントを読んで印刷するソフトがXSL-FOプロセサである。XSL-FOは2001年10月にV1.0が勧告され、2006年12月にV1.1となった。英語の原文は次のところにある。

「Extensible Stylesheet Language (XSL) Version 1.1」(W3C Recommendation 05 December 2006、XSL-FO V1.1)https://www.w3.org/TR/xsl/

また、XSL-FO V1.1の日本語訳はJIS X 4179:2010「拡張可能なスタイルシート言語(XSL)1.1」になっている。

XSL-FOはマークアップ言語と印刷の専門家が、英知を集めて開発したものであり、歴史に残るだろう。しかし、仕様書原文はXSL-FOプロセサ開発者向けの内容が多く、利用者にとっては難解すぎる。そこで、本書では主としてXSL-FOプロセサを利用する人を想定し、XSL-FO仕様の要点を図やサンプルを使って解説した。XSL-FOは機能拡張が容易であり、それぞれのXSL-FOプロセサがさまざまな拡張機能を提供しているが、本書はXSL-FO V1.1の標準仕様の範囲内での解説にとどめている。なお、本書はXSL-FOの仕様を網羅していないので、すべてを網羅したい方は仕様書原文を参照されたい。

注意
  1. 本書の読者にはXMLドキュメントについての基礎的な知識を前提としている。
  2. 本書のXMLやFOのサンプルは、見やすくするために、本来は不要な(あるいは入れるべきではない)改行や空白を使って整形している。
  3. 読み易くするため、fo:marker(マーカー)のように( )内にFOの日本語名を表記し、意味が曖昧にならない範囲でFOを日本語名で表す。
  4. 本書の説明はFOを中心に進めており、プロパティは汎用のプロパティを除いてFOの説明の一環で行っている。しかし、プロパティは複数のFOに適用されるものが多い。そのときは索引からプロパティを説明している箇所を探すことができる。