</fo:simple-page-master>

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

   .

   .

   .

  </fo:page-sequence-master>

 </fo:layout-master-set>

С элементом <fo:page-sequence-master> вы можете применять следующее свойство:

master-name.

Здесь я просто назвал новую последовательность страниц «sequence» (последовательность). Я создаю шаблон последовательности страниц повторяющегося типа, и для задания имен шаблонов страниц в новой последовательности служит элемент <fo:repeatable-page-master- alternatives>:

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

 <fо:repeatable-page-master-alternatives>

  .

  .

  .

 </fo:repeatable-page-master-alternatives>

</fo:page-sequence-master>

Очередное свойство элемента <fo:repeatable-page-master-alternatives> определяет, сколько раз полагается повторять последовательность:

maximum-repeats.

Наконец, надо задать шаблоны страниц, которые будут использованы в шаблоне последовательности, при помощи элемента <fo:conditional-page-master-reference>. Этот элемент ссылается на шаблон страницы при помощи свойства master-name, и этот шаблон страницы будет использован при выполнении определенного условия. Чтобы выбрать первую страницу, нужно установить свойство page-position в «first», а для выбора остальных страниц — в «rest»:

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

 <fo:repeatable-page-master-alternatives>

  <fо:conditional-page-master-reference

   master-name='first' page-position='first'/>

  <fo:conditional-page-master-reference

   master-name='rest' page-position='rest'/>

 </fо:repeatable-page-master-alternatives>

</fo:page-sequence-master>

С элементом <fo:conditional-page-master-reference> можно применять следующие свойства:

master-name;

page-position;

odd-or-even;

blank-or-not-blank.

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

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

 .

 .

 .

номером текущей страницы, так что установить нумерацию страниц не составит труда. Чтобы вывести номер в верхней части каждой страницы, я создаю верхний колонтитул страницы при помощи элемента <fo:static-content>.

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

flow-name.

Для создания колонтитула нужно только поместить элемент <fo:static-content> перед элементом <fo:flow> в последовательности страниц:

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

 <fo:static-content flow-name='xsl-region-before'>

  <fo:block text-align='end' font-size='24pt'

   font-family='sans-serif' line-height='36pt'>

   Sample Document p.

   <fo:page-number/>

  </fo:block>

 </fo:static-content>

 <fo:flow flow-name='xsl-region-body'>

 .

 .

 .

УСТАНОВКА НАЧАЛЬНОГО НОМЕРА СТРАНИЦЫ

Для установки начального номера страницы в последовательности служит свойство initial-page- number элемента <fo:page-sequence>, что позволяет вам, например, отдельно форматировать главы, начиная каждую главу с правильного номера страницы.

Наконец, нам осталось только включить в pages.fo (листинг 12.8) образец форматируемого текста, так чтобы документ содержал более одной страницы.

Листинг 12.8. pages.fo

<?xml version='1.0' encoding='UTF-8'?>

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

 <fo:layout-master-set>

  <fo:simple-page-master margin-right='20mm' margin-left='20mm'

   margin-bottom='10mm' margin-top='10mm' page-width='300mm'

   page-height='400mm' master-name='first'>

   <fo:region-body margin-right='0mm' margin-left='0mm'

    margin-bottom='10mm' margin-top='50mm'/>

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

   <fo:region-before extent='10mm'/>

  </fo:simple-page-master>

  <fo:simple-page-master margin-right='25mm' margin-left='25mm'

   margin-bottom='15mm' margin-top='15mm' page-width='300mm'

   page-height='400mm' master-name='rest'>

   <fo:region-body margin-right='0mm' margin-left='0mm'

    margin-bottom='10mm' margin-top='20mm'/>

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

0

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

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