Kniga-Online.club

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

Читать бесплатно Стивен Холзнер - XSLT. Жанр: Интернет издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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

    text-align="center" space-after="24pt">

    Sample Document

   </fo:block>

   <fo:block font-size="24pt" font-family="sans-serif"

    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.

    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.

    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.

    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.

    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.

   </fo:block>

  </fo:flow>

 </fo:page-sequence>

</fo:root>

Теперь все готово. Первая страница, созданная pages.fo, показана на рис. 12.8; как можно заметить, текст смещен вниз.

Рис. 12.8. Первая страница, отформатированная при помощи XSL-FO 

Текст на второй странице начинается сверху, как видно на рис. 12.9.

Рис 12.9. Вторая страница, отформатированная при помощи XSL-FO

Как можно заметить из листинга 12.8, я включил в pages.fo большое число строк, не содержащих ничего, кроме слов «Sample Text.», для того чтобы гарантированно получить многостраничный документ. Но для перехода на новую страницу не обязательно располагать большим количеством текста: можно также установить свойство break-after элемента <fo:block> в «page», и процессор XSL-FO перейдет на новую страницу после текущего блока:

<fo:flow flow-name="xsl-region-body">

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

  text-align="center" space-after="24pt">

  Sample Document

 </fo:block>

 <fo:block font-size="24pt" font-family="sans-serif"

  color="gray" break-after="page">

  Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.

  Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.

  Sample Text. Sample Text.

 </fo:block>

 <fo:block font-size="24pt" font-family="sans-serif"

  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.

 </fo:block>

</fo:flow>

Вот и все. Теперь процессор XSL-FO перейдет на следующую страницу после блока. Для создания разрывов можно использовать следующие свойства и настройки:

• break-after. Указывает, что последняя область, созданная при обработке данного форматирующего объекта, будет последней помещенной в определенный контекст. Устанавливается в auto | column | page | even-page | odd-page | inherit;

Перейти на страницу:

Стивен Холзнер читать все книги автора по порядку

Стивен Холзнер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


XSLT отзывы

Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*