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

ЖАНРЫ

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

Шрифт:

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

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

.

.

.

Это завершает используемый в документе шаблон, простой шаблон страницы «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», и здесь я устанавливаю данный атрибут в это имя:

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