Чтение онлайн

ЖАНРЫ

Холзнер Стивен

Шрифт:

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"/>

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

<fо:region-before extent="10mm"/>

</fo:simple-page-master>

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

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

<fo: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:layout-master-set>

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

<fo:block font-size="36pt" font-family="Times"

Поделиться с друзьями: