Выбрать главу

Шаблоны, которые вы хотите применить в документе, должны быть перечислены в элементе <fo:layout-master-set>, поэтому теперь я добавляю его в planets.xsclass="underline"

<?xml version="1.0"?>

<xsclass="underline" stylesheet

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

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

 version="1.0">

 <xsclass="underline" template match="PLANETS">

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

   <fo:layout-master-set>

    .

    .

    .

   </fo:layout-master-set>

   .

   .

   .

Этот элемент содержит шаблон страницы, как определено в элементе <fo:simple-page-master>.

Создание шаблона страницы: <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"?>

<xsclass="underline" stylesheet

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

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

 version="1.0">

 <xsclass="underline" 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"?>

<xsclass="underline" stylesheet

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

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

 version="1.0">

 <xsclass="underline" 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"