Создание областей

Создание областей

В версии 1.0 спецификации XSL у шаблонов страниц имелось пять областей (region). Центральная область, соответствующая основной части, телу страницы, называется областью тела (body region). Верхняя часть страницы, верхний колонтитул (header), называется передней областью (before region); нижняя часть страницы, нижний колонтитул (footer), называется задней областью (after region). В языках, которые читаются слева направо, как английский язык, левая часть страницы называется начальной областью (start region), а правая часть называется конечной областью (end region). В языках, которые читаются справа налево, начальная и конечная области меняются местами. Начальная и конечная области аналогичны боковым полям, расположенным по бокам области тела.

Этим областям соответствуют следующие элементы XSL-FO:

• <fo:region-before>;

• <fo:region-after>;

• <fo:region-body>;

• <fo:region-start>;

• <fo:region-end>.

С ними можно применять следующие свойства:

• общие свойства границ, заполнения и заднего фона: background-attachment, background-color, background-image, background-repeat, background-position-horizontal, background-position-vertical, border-before-color, border-before-style, border-before-width, border-after-color, border-after-style, border-after-width, border-start-color, border-start-style, border-start-width, border-end-color, border-end-style, border-end-width, border-top-color, border-top-style, border-top-width, border-bottom-color, border-bottom-style, border-bottom-width, border-left-color, border-left-style, border-left-width, border-right-color, border-right-style, border-right-width, padding-before, padding-after, padding-start, padding-end, padding-top, padding-bottom, padding-left, padding-right;

• общие свойства полей для блоков: margin-top, margin-bottom, margin-left, margin-right, space-before, space-after, start-indent, end-indent;

• clip;

• column-count;

• column-gap;

• display-align;

• extent;

• overflow;

• region-name;

• reference-orientation;

• writing-mode.

Области страницы можно настраивать по вашему желанию, как в таблице стилей XSLT, в которой я задал поля для области тела. Четыре внешних области (но не область тела) имеют свойство extent, задающее их размер, которым я здесь воспользуюсь:

<?xml version="1.0"?>

<xsl:stylesheet

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:fo="http://www.w3.org/1999/XSL/Format"

 version="1.0">

 <xsl:template match="PLANETS">

  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

   <fo:layout-master-set>

   <fo:simple-page-master master-name="page"

    page-height="400mm" page-width="300mm"

    margin-top="10mm" margin-bottom="10mm"

    margin-left="20mm" margin-right="20mm">

    <fo:region-body margin-top="0mm" margin-bottom="10mm"

     margin-left="0mm" margin-right="0mm"/>

    <fo:region-after extent="10mm"/>

   </fo:simple-page-master>

  </fo:layout-master-set>

  .

  .

  .

Это завершает используемый в документе шаблон, простой шаблон страницы «page», почему здесь также завершается и элемент <fo:layout-master-set>.

В дополнение к элементу <fo:layout-master-set>, документ с форматирующими объектами, как правило, также содержит один или несколько элементов <fo:page-sequence>, задающих последовательности страниц, создаваемых по определенному в <fo:layout-master-set> шаблону, и я добавил в документ последовательность страниц.