Создание шаблона страницы: <fo:simple-page-master>

Как можно догадаться из названия, шаблон страницы (page master) применяется для создания страницы. Шаблон страницы задает фактическую схему и конфигурацию страницы. Каждому шаблону страницы должно быть задано уникальное имя, к которому и нужно обращаться при работе с шаблоном.

В настоящей спецификации XSL существует единственный вид шаблона страницы, <fo:simple-page-master>, и здесь я буду применять этот элемент для форматирования страниц. С объектом <fo:simple-page-master> можно использовать следующие свойства XSL-FO (их описание приведено в Приложении Б):

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

• master-name;

• page-height;

• page-width;

• reference-orientation;

• writing-mode.

В таблице стилей XSLT, которую я применил к planets.xml, я задал простому шаблону страницы имя «page» при помощи свойства master-name. После этого шаблон стал именованным, и когда мне нужно создать страницы по этому шаблону, я обращаюсь к нему по этому имени. Я также задаю размеры и поля страницы при помощи свойств страницы и полей следующим образом:

<?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:simple-page- master> есть дети, определяющие одну или несколько областей страницы, что позволяет точно настроить схему расположения.

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

В версии 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>

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ОБРАНЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату