XSL-FO 页面


XSL-FO は、"Page Masters" という名前のページテンプレートを使用して、ページのレイアウトを定義します。


XSL-FO 页面模板(Page Templates)

XSL-FO は、"Page Masters" という名前のページテンプレートを使用して、ページのレイアウトを定義します。各テンプレートには一意の名前が必要です。

<fo:simple-page-master master-name="intro">
<fo:region-body margin="5in" />
</fo:simple-page-master>

<fo:simple-page-master master-name="left">
<fo:region-body margin-left="2in" margin-right="3in" />
</fo:simple-page-master>

<fo:simple-page-master master-name="right">
<fo:region-body margin-left="3in" margin-right="2in" />
</fo:simple-page-master>

上の例では、3つの <fo:simple-page-master> 要素が、3つの異なるテンプレートを定義しています。各テンプレート(page-master)には異なる名前があります。

最初のテンプレートは "intro" という名前です。これは紹介ページのテンプレートとして使用できます。

2番目と3番目のテンプレートは "left" と "right" という名前です。これらは偶数ページと奇数ページのページテンプレートとして使用できます。


XSL-FO 页面尺寸(Page Size)

XSL-FO は、次の属性を使用してページのサイズを定義します。

  • page-width はページの幅を定義する
  • page-height はページの高さを定義する

XSL-FO 页面边距(Page Margins)

XSL-FO は、次の属性を使用してページのマージンを定義します。

  • margin-top は上余白を定義する
  • margin-bottom は下余白を定義する
  • margin-left は左余白を定義する
  • margin-right は右余白を定義する
  • margin はすべての辺のマージンを定義します。

XSL-FO 页面区(Page Regions)

XSL-FO は、次の要素を使用してページのリージョンを定義します。

  • region-body は本体領域を定義する
  • region-before は上部領域(ヘッダー)を定義する
  • region-after は下部領域(フッター)を定義する
  • region-start は左側領域(左サイドバー)を定義する
  • region-end は右側のリージョン(右サイドバー)を定義します。

region-before、region-after、region-start、region-end はボディリージョンの一部であることに注意してください。ボディリージョンのテキストがこれらのリージョンのテキストを覆わないようにするには、ボディリージョンのマージンを他のリージョンのサイズ以上に設定する必要があります。

Margins and page layout

XSL-FO 实例

これは、特定の XSL-FO ドキュメントから抽出した断片です。

<fo:simple-page-master master-name="A4" page-width="297mm"
page-height="210mm" margin-top="1cm" margin-bottom="1cm"
margin-left="1cm" margin-right="1cm">
<fo:region-body margin="3cm"/>
<fo:region-before extent="2cm"/>
<fo:region-after extent="2cm"/>
<fo:region-start extent="2cm"/>
<fo:region-end extent="2cm"/>
</fo:simple-page-master>

上記のコードは、"A4" という名前の "Simple Page Master Template" を定義しています。

ページの幅は 297 ミリメートル、高さは 210 ミリメートルです。

ページの4つのマージン(上マージン、下マージン、左マージン、右マージン)はすべて 1 センチメートルです。

ボディのマージンは 3 センチメートルです(4つの辺すべて)。

本体の before、after、start、および end 領域はすべて 2 センチメートルです。

上の例の本文の幅は、ページ幅から左右のマージンと region-body のマージンを差し引いて計算できます。

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

region(region-start と region-end)は計算に含まれないことに注意してください。前述のとおり、これらのリージョンはボディの一部です。


其他扩展