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

ЖАНРЫ

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

Шрифт:

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

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

.

.

.

</fo:page-sequence>

.

.

.

Этот

код определяет шаблон страницы, который будет использован для последовательности страниц. Теперь мне нужно задать содержимое (content) последовательности, что делается при помощи детей потока (flow) элемента
<fo:page-sequence>
.

Создание объектов потока: <fo:flows>

Объекты потока носят такое название потому, что текст в них «заливается» и выравнивается, заполняя страницу, программой, отвечающей за вывод на экран. Содержимое страницы управляется объектами потока.

Есть два вида объектов потока:

<fo:static-content>
и
<fo:flow>
. Объект
<fo:static-content>
хранит содержимое (например, текст в верхних и нижних колонтитулах), которое будет повторяться на страницах последовательности (как мы увидим в главе 12). Объект
<fo:flow>
содержит сам текст, образующий содержимое документа.

К

<fo:flow>
применимо следующее свойство:

flow-name
.

Я воспользуюсь элементом

<fo:flow>
для обработки текстового содержимого
planets.xml
. Чтобы гарантировать, что текст будет преобразован в поток, я применю элемент
<xsl:apply-templates>
:

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

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

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

<xsl:apply-templates/>

</fo:flow>

</fo:page-sequence>

.

.

.

Здесь мы заканчиваем рассмотрение элемента

<fo:page-sequence>
; я указал шаблон для этой последовательности, который предоставит процессору XSL-FO способ форматирования содержимого в страницах форматированного документа. После описания схемы страниц, которые я хочу создать, теперь, наконец, пора перейти к их содержимому. Первый элемент, отображающий содержимое, —
<fo:block>
.

Создание содержимого уровня блока: <fo:block>

Блоки

играют важную роль в XSL-FO: они применяются для создания прямоугольных областей вывода, отделенных от других областей вывода в документе. Форматирующий объект
<fo:block>
применяется для форматирования таких элементов, как абзацы, заголовки, подписи к рисункам и таблицам и т.д. Вот пример из начала главы, где я создаю элемент блока и задаю различные свойства и текст в блоке:

<fo:block font-family="Times" line-height="48pt" font-size="36pt">

 Welcome to XSL formatting.

</fo:block>

С объектом

<fo:block>
можно применять следующие свойства:

• общие свойства доступа:

source-document
,
role
;

• общие звуковые свойства:

azimuth
,
cue-after
,
cue-before
,
elevation
,
pause-after
,
pause-before
,
pitch
,
pitch-range
,
play-during
,
richness
,
speak
,
speak-header
,
speak-numeral
,
speak-punctuation
,
speech-rate
,
stress
,
voice-family
, volume;

• общие свойства границ, заполнения и заднего фона:

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
;

• общие свойства шрифта:

font-family
,
font-size
,
font-stretch
,
font-size-adjust
,
font-style
,
font-variant
,
font-weight
;

• общие свойства переноса:

country
,
language
,
script
,
hyphenate
,
hyphenation-character
,
hyphenation-push-character-count
,
hyphenation-remain-character-count
;

• общие свойства полей для блоков:

margin-top
,
margin-bottom
,
margin-left
,
margin-right
,
space-before
,
space-after
,
start-indent
,
end-indent
;

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