Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лабы / Lab4-04.doc
Скачиваний:
15
Добавлен:
12.05.2015
Размер:
545.79 Кб
Скачать

3.6. Элементы форматирования списков вXsl

В XSL имеется четыре элемента, используемых для построения списков: fo:list-block, fo:list-item, fo:list-item-label и fo:list-item-body.

Блоковый элемент fo:list-block используется для форматирования списка. Содержимым этого элемента является один или несколько элементов list-item.

Блоковый элемент fo:list-item содержит метку (элемент fo:list-item-label) и тело (элемент fo:list-item-body) элемента списка. Кроме того, fo:list-item элемент может содержать 0 или более элементов fo:marker в качестве начальных дочерних элементов.

Для элементов fo:list-block и fo:list-item так же, как и для элемента fo:title, могут быть заданы общие свойства рамки, отступа и фона. Кроме того, для этих элементов могут быть заданы общие свойства полей блока (как и для элементаfo:simple-page-master), а также свойства относительного позиционирования и свойстваid,keep-with-previous, keep-with-next, keep-together, intrusion-displace, break-before и break-after (как для элементаfo:block).

Для элемента fo:list-item может быть задано свойствоrelative-align, которое определяет выравнивание, в направлении block-progression-direction, между двумя областями или более. Значение "before" определяет, что передний край потомка первой области, генерируемого объектом fo:list-item-label, размещается прилегающим к начальному краю области, генерируемой объектом fo:list-item (это значение по умолчанию). Значение "baseline" определяет, расстояние между базовой линией первой строчной области первого потомка области, генерируемого объектом fo:list-item-label, то же самое, что и расстояние между первой базовой линией первой строчной области первого потомка области, генерируемого объектом fo:list-item-body.

Для элемента fo:list-block определены также свойства provisional-distance-between-starts и provisional-label-separation.

Первое свойство определяет расстояние (в фиксированных единицах измерения или процентах) между начальным отступом метки элемента списка и началом тела элемента списка, а второе – расстояние (в фиксированных единицах измерения или процентах) между концом метки элемента списка и началом тела элемента списка. По умолчанию, значение первого свойства равно "24.0pt", а второго – "6.0pt".

Элемент fo:list-item-label определяет метку элемента списка, а элемент fo:list-item-body – тело элемента списка. Содержимым этих элементов является один или несколько блоковых элементов.

Для этих элементов определены свойства idиkeep-together (как для элементаfo:block).

3.7. Создание закладок

Закладки в документе PDFсоздаются вFOPс использованием расширенийXSL. Для того, чтобы использовать расширения, в корневом элементеXSL, наряду с пространством именXSLTиXSLнеобходимо определить пространство имен, используемое расширениями (по умолчанию, для расширенийFOPопределено пространство именfox:). В этом случае элементstylesheetпринимает следующий вид:

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:fo="http://www.w3.org/1999/XSL/Format"

xmlns:fox="http://xml.apache.org/fop/extensions">

Пространство имен расширений FOPможно альтернативно определить и в элементеfo:root, поскольку расширения используются только внутри этого элемента.

Закладка может быть создана с помощью задания уникального атрибута idдля любого элементаXSL, например:

<fo:block id="section-01">Раздел 1</fo:block>

Ссылка на закладки создается с использованием элемента <fox:outline>, в котором в атрибутеinternal-destinationзадается идентификатор ссылки. В элементе<fox:label>внутри элемента<fox:outline>задается наименование закладки, выводимое в документеPDF, например:

<fox:outline internal-destination="section-01">

<fox:label>Раздел 1</fox:label>

</fox:outline>

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

<fox:outline internal-destination="section-01">

<fox:label>Раздел 1</fox:label>

<fox:outline internal-destination="section-01-01">

<fox:label>Раздел 1.1</fox:label>

</fox:outline>

</fox:outline>

</fo:root>

Соседние файлы в папке Лабы