Наконец, надо задать шаблоны страниц, которые будут использованы в шаблоне последовательности, при помощи элемента
<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) образец форматируемого текста, так чтобы документ содержал более одной страницы.