<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> шаблону, и я добавил в документ последовательность страниц.

Создание последовательностей страниц: <fo:page-sequence>

Что такое последовательность страниц? Это ряд страниц с одинаковыми характеристиками (например, глава в книге), которые при желании можно форматировать одинаковым способом. Страницы в результирующем документе в действительности создаются тогда, когда процессор XSL-FO обрабатывает элементы <fo:page-sequence>.

Каждый элемент <fo:page-sequence> ссылается либо на элемент <fo:page-sequence-master>, либо на шаблон страницы, и фактическая схема страниц определяется этими шаблонами. Несколько более сложно создание последовательностей, у которых место расположения номера страницы меняется — номеру располагаются на разных сторонах страницы, как при создании страниц книги.

К объекту <fo:page-sequence> применимы следующие свойства:

• country;

• format;

• language;

• letter-value;

• grouping-separator;

• grouping-size;

• id;

• initial-page-number;

• force-page-count;

• master-name.

В последней рекомендации XSL W3C шаблон страницы для последовательности страниц задается атрибутом master-name элемента <fo:page-sequence>. Я назвал свой простой шаблон страницы «page», и здесь я устанавливаю данный атрибут в это имя:

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

  <fo:page-sequence master-name='page'>

   .

   .

   .

  </fo:page-sequence>

  .

  .

  .

Этот код определяет шаблон страницы, который будет использован для последовательности страниц. Теперь мне нужно задать содержимое (content) последовательности, что делается при помощи детей потока (flow) элемента <fo:page- sequence>.

Создание объектов потока: <fo:flows>

Объекты потока носят такое название потому, что текст в них «заливается» и выравнивается, заполняя страницу, программой, отвечающей за вывод на экран. Содержимое страницы управляется объектами потока.

Есть два вида объектов потока: <fo:static-content> и <fo:flow>. Объект <fo:static-content> хранит содержимое (например, текст в верхних и нижних колонтитулах), которое будет повторяться на страницах последовательности (как мы увидим в главе 12). Объект <fo:flow> содержит сам текст, образующий содержимое документа.

К <fo:flow> применимо следующее свойство:

flow-name.

Я воспользуюсь элементом <fo:flow> для обработки текстового содержимого planets.xml. Чтобы гарантировать, что текст будет преобразован в поток, я применю элемент <xsl:apply-templates>:

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

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

0

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

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