static | relative | inherit
;•
right
. Определяет, насколько край содержимого прямоугольника (box) смещен влево от правой границы содержащего прямоугольник блока. Устанавливается в | | auto | inherit
;•
score-spaces
. Определяет, следует ли применять свойство text-decoration
к пробелам. Устанавливается в true | false | inherit
;•
space-treatment
. Определяет способ обработки пробелов и других символов-разделителей, за исключением символов перевода строки. Устанавливается в ignore | preserve | ignore-if-before-linefeed | ignore-if-after-linefeed | ignore-if-surrounding-linefeed | inherit
;•
span
. Определяет, нужно ли поместить объект уровня блока в текущий столбец или растянуть его на все столбцы в области. Устанавливается в none | all | inherit
;•
src
. Задает ссылку URI, определяющую внешний ресурс. Устанавливается в | inherit
;•
start-indent
. Определяет расстояние от начального края прямоугольника содержимого области, содержащей блок, до начального края прямоугольника содержимого области этого блока. Устанавливается в | inherit
;•
starts-row
. Определяет, начинает ли эта ячейка строку. Устанавливается в true | false
;•
text-align
. Определяет способ выравнивания встроенного содержимого блока. Устанавливается в start | center | end | justify | inside | outside | left | right | | inherit
;•
text-decoration
. Задает параметры оформления, добавляемого тексту элемента. Устанавливается в none | [ [ underline | no-underline] || [ overline | no-overline ] || [ line-through | no-line-through ] || [ blink | no-blink ] ] | inherit
;•
text-indent
. Определяет выравнивание первой строки текста в блоке. Устанавливается в | | inherit
;•
text-shadow
. Задает разделенный запятыми список теневых эффектов, которые нужно применить к тексту элемента. Устанавливается в none | || ? ,]* || ?] | inherit
;•
top
. Определяет, насколько край содержимого смещен ниже верхнего края содержащего его блока. Устанавливается в | | auto | inherit
;•
vertical-align
. Определяет вертикальное расположение. Устанавливается в baseline | middle | sub | super | text-top | text-bottom [ | | top | bottom | inherit
;•
visibility
. Определяет, будут ли отображены генерируемые элементом прямоугольники. Устанавливается в visible | hidden | collapse | inherit
;•
white-space
. Определяет способ обработки символов-разделителей (white-space) внутри элемента. Устанавливается в normal | pre | nowrap | inherit
;•
white-space-collapse
. Задает способ обработки последовательных символов-разделителей. Устанавливается в false | true | inherit
;•
width
. Задает ширину содержимого прямоугольников, созданных элементами уровня блока и замененными элементами. Устанавливается в | | auto | inherit
;•
wrap-option
. Определяет наличие оболочки строк форматирующего объекта. Устанавливается в no-wrap | wrap | inherit
.Не все свойства применимы ко всем объектам XSL-FO. В этой и следующей главах я буду явно перечислять свойства, применимые к используемым мной объектам. Заметьте также, что пока что ни в одном процессоре XSL-FO не реализованы все эти свойства.
Мы вкратце рассмотрели структуру XSL-FO, теперь пора перейти к практике: сейчас мы подробно рассмотрим работу примера.
Форматирование документа XML
Чтобы посмотреть, как XSL-FO может форматировать данные XML, я воспользуюсь planets.xml (листинг 11.1).
Листинг 11.1. planets.xml
Mercury
.0553
58.65
1516
.983
43.4
Venus
.815
116.75
3716
.943
66.8
Earth
1
1
2107
1
128.4
В этом первом примере я создам таблицу стилей XSLT для форматирования файла
planets.xml
и преобразования его в planets.fo
, использующую форматирующие объекты для задания шрифтов, стилей и цветов. Затем я воспользуюсь процессором fop и преобразую planets.fo
в файл planets.pdf
, который показан на рис. 11.1.Рис. 11.1. Документ PDF, созданный при помощи форматирующих объектов
Как видно на рис. 11.1, в нашем первом примере я применил средства форматирования текста: установку шрифта, подчеркивание текста, выделение текста курсивом и даже установка цвета текста. (Хотя этого и не видно на рис. 11.1, заголовок «The Planets Table» выделен светло-голубым цветом.)
Первый шаг при создании документа на рис. 11.1 — применить таблицу стилей XSLT для преобразования
planets.xml
в planets.fo
.Преобразование в XSL-FO при помощи таблицы стилей XSLT
В этой главе я создам таблицу стилей для преобразования
planets.xml
в planets.fo
. Я буду создавать таблицу шаг за шагом; для справки я приведу ее окончательный вид (листинг 11.2).Листинг 11.2. planets.xsl
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
page-height="400mm" page-width="300mm"
margin-top="10mm" margin-bottom="10mm"
margin-left="20mm" margin-right="20mm">
margin-top="0mm" margin-bottom="10mm"
margin-left="0mm" margin-right="0mm"/>