Trang XSL-FO

XSL-FO sử dụng mẫu trang có tên "Page Masters" để định nghĩa bố cục trang.

Mẫu trang XSL-FO

XSL-FO sử dụng mẫu trang có tên "Page Masters" để định nghĩa bố cục trang. Mỗi mẫu phải có một tên duy nhất:

<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>

Trong ví dụ trên, ba phần tử <fo:simple-page-master> định nghĩa ba mẫu khác nhau. Mỗi mẫu (page-master) đều có tên khác nhau.

Mẫu đầu tiên có tên là "intro". Nó có thể được sử dụng làm mẫu giới thiệu trang.

Mẫu thứ hai và thứ ba có tên là "left" và "right". Chúng có thể được sử dụng cho trang số chẵn và số lẻ.

Kích thước trang XSL-FO

XSL-FO sử dụng các thuộc tính dưới đây để định nghĩa kích thước trang:

page-width
Định nghĩa chiều rộng của trang
page-height
Định nghĩa chiều cao của trang

Viền trang XSL-FO

XSL-FO sử dụng các thuộc tính dưới đây để định nghĩa viền trang:

margin-top
Định nghĩa viền trên
margin-bottom
Định nghĩa viền dưới
margin-left
Định nghĩa viền bên trái
margin-right
Định nghĩa viền bên phải
margin
Định nghĩa viền các cạnh

Khu vực trang XSL-FO (Page Regions)

XSL-FO sử dụng các phần tử dưới đây để định nghĩa khu vực của trang:

region-body
Định nghĩa khu vực chính
region-before
Định nghĩa khu vực đỉnh (header)
region-after
Định nghĩa khu vực đáy (footer)
region-start
Định nghĩa khu vực bên trái (cột trái)
region-end
Định nghĩa khu vực bên phải (cột phải)

Ghi chú:region-before, region-after, region-start và region-end là một phần của khu vực chính. Để tránh văn bản trong khu vực chính chiếm phần các khu vực này, viền của khu vực chính ít nhất phải bằng kích thước các khu vực khác.

Hình minh họa:

Mẫu XSL-FO

Đây là một đoạn văn bản được lấy từ một tài liệu 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>

Mã trên định nghĩa mẫu "Simple Page Master Template" có tên là "A4".

Chiều rộng của trang là 297 mm, chiều cao là 210 mm.

Biên độ của bốn cạnh của trang đều là 1 cm.

Biên độ của đối tượng là 3 cm (bốn cạnh đều là).

Khu vực trước, sau, bắt đầu và kết thúc đều là 2 cm.

Chiều rộng của đối tượng trong ví dụ trên có thể tính bằng cách trừ chiều rộng trang đi biên độ của mép trái phải và mép của region-body:

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

Ghi chú:Khu vực (region-start và region-end) không được tính vào. Như đã giải thích trước đó, những khu vực này là phần của đối tượng chính.