Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Результат обработки этого документа, columns.pdf
, показан на рис. 12.7.

Рис. 12.7.Создание колонок при помощи XSL-FO
Последовательности страниц и нумерация страниц
Пока я использовал один и тот же шаблон страницы для всех страниц в рассмотренных нами документах XSL-FO. Если содержимое документа занимает более одной страницы, процессор XSL-FO использует тот же шаблон страницы для всех последующих страниц.
Но вам может быть нужно использовать различные шаблоны страницы в разных местах документа. Например, первую страницу нужно отформатировать отлично от следующих. При помощи XSL-FO это можно сделать.
Каждый элемент , который я применял во всех примерах XSL-FO, ссылается либо на шаблон страницы, либо на элемент . При помощи элемента вы можете задать различные шаблоны страницы для последовательности страниц.
Пример pages.fo
продемонстрирует вышесказанное. Я создам для первой страницы один простой шаблон страницы, «first» (первая), в котором текстовая часть смещена вниз страницы, для чего я устанавливаю свойство margin-top
элемента в «50mm»:
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="first">
margin-bottom="10mm" margin-top="50mm"/>
.
.
.
Для всех остальных страниц я создам новый шаблон страницы, «rest» (остальные), в котором текст будет начинаться сверху страницы, для чего я устанавливаю свойство margin-top
элемента в «20mm»:
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="first">
.
.
.
margin-bottom="15mm" margin-top="15mm" page-width="300mm"
page-height="400mm" master-name="rest">
margin-bottom="10mm" margin-top="20mm"/>
.
.
.
Чтобы создать шаблон последовательности страниц, использующий простые шаблоны страниц «first» и «rest», я применяю элемент :
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="first">
.
.
.
margin-bottom="15mm" margin-top="15mm" page-width="300mm"
page-height="400mm" master-name="rest">
.
.
.
.
.
.
С элементом вы можете применять следующее свойство:
• master-name
.
Здесь я просто назвал новую последовательность страниц «sequence» (последовательность). Я создаю шаблон последовательности страниц повторяющегося типа, и для задания имен шаблонов страниц в новой последовательности служит элемент :
:repeatable-page-master-alternatives>
.
.
.
Очередное свойство элемента определяет, сколько раз полагается повторять последовательность:
• maximum-repeats
.
Наконец, надо задать шаблоны страниц, которые будут использованы в шаблоне последовательности, при помощи элемента . Этот элемент ссылается на шаблон страницы при помощи свойства master-name
, и этот шаблон страницы будет использован при выполнении определенного условия. Чтобы выбрать первую страницу, нужно установить свойство page-position
в «first», а для выбора остальных страниц — в «rest»:
:conditional-page-master-reference
master-name="first" page-position="first"/>
master-name="rest" page-position="rest"/>
:repeatable-page-master-alternatives>
С элементом можно применять следующие свойства:
• master-name
;
• page-position
;
• odd-or-even
;
• blank-or-not-blank
.
Теперь при создании последовательности страниц с помощью элемента я указываю, что процессор XSL-FO должен использовать шаблон последовательности, «sequence», который я только что создал, установив атрибут master-name элемента :
.
.
.
номером текущей страницы, так что установить нумерацию страниц не составит труда. Чтобы вывести номер в верхней части каждой страницы, я создаю верхний колонтитул страницы при помощи элемента .
Существует два вида потоковых объектов: и . Мы уже видели, как при помощи добавляются страницы в поток документа. Элемент используется для добавления в документ верхних и нижних колонтитулов. С можно применять следующее свойство:
• flow-name
.
Для создания колонтитула нужно только поместить элемент перед элементом в последовательности страниц:
font-family="sans-serif" line-height="36pt">
Sample Document p.
.
.
.
УСТАНОВКА НАЧАЛЬНОГО НОМЕРА СТРАНИЦЫ
Для установки начального номера страницы в последовательности служит свойство initial-page-number элемента , что позволяет вам, например, отдельно форматировать главы, начиная каждую главу с правильного номера страницы.
Наконец, нам осталось только включить в pages.fo
(листинг 12.8) образец форматируемого текста, так чтобы документ содержал более одной страницы.
margin-bottom="10mm" margin-top="10mm" page-width="300mm"
page-height="400mm" master-name="first">
margin-bottom="10mm" margin-top="50mm"/>
margin-bottom="15mm" margin-top="15mm" page-width="300mm"
page-height="400mm" master-name="rest">
margin-bottom="10mm" margin-top="20mm"/>
:region-before extent="10mm"/>
:repeatable-page-master-alternatives>
master-name="first" page-position-"first"/>
master-name="rest" page-position="rest"/>
:repeatable-page-master-alternatives>
font-family="sans-serif" line-height="36pt">
Sample Document p.
text-align="center" space-after="24pt">
Sample Document
color="gray">
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.
Интервал:
Закладка: