XSLT
Шрифт:
<?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>
.
.
.
Этот
<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
;
Поделиться с друзьями: