font-family="sans-serif" font-size="18pt">
Description of Service
border-width="1pt" height="4cm" width="9cm" top="4.0cm"
left="0cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="12pt">
border-width="1pt" height="1.0cm" width="9cm" top="3cm"
left="10cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="18pt">
Address for Payment:
border-width="1pt" height="4cm" width="9cm" top="4.0cm"
left="10cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="12pt">
Документ PDF, который процессор fop создаст из blockcontainers.fo
, показан на рис. 12.2. Как можно видеть на рисунке, я поместил различные блоки в разные места документа. Некоторые прямоугольники должны быть размещены сразу же поверх других, поэтому в данном случае размещение играет важную роль.
Рис. 12.2.Применение контейнеров блоков
На самом деле работать с контейнерами блоков просто. Взгляните, например, на прямоугольник «Description of Service» (Описание услуги) на рис. 12.2. Я создал его при помощи двух контейнеров блоков: один из них содержит заголовок «Description of Service», а второй — пустой прямоугольник сразу под первым. Для создания прямоугольника заголовка я применил элемент , указав размеры прямоугольника в свойствах height
(высота) и width
(ширина) и задав границу в свойстве border-width
. Положение прямоугольника на странице я задал, установив свойство position
в absolute
и установив свойства left
(левый) и top
(верхний) для размещения верхнего левого угла прямоугольника по отношению к верхнему левому углу страницы:
border-width="1pt" height="1.0cm" width="9cm" top="3cm"
left="0cm" padding="2pt" position="absolute">
.
.
.
Теперь я могу включить в контейнер блок, содержащий заголовок «Description of Service»:
border-width="1pt" height="1.0cm" width="9cm" top="3cm"
left="0cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="18pt">
Description of Service
После этого я размещаю пустой прямоугольник сразу под прямоугольником заголовка:
border-width="1pt" height="1.0cm" width="9cm" top="3cm"
left="0cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="18pt">
Description of Service
border-width="1pt" height="4cm" width="9cm" top="4.0cm"
left="0cm" padding="2pt" position="absolute">
font-family="sans-serif" font-size="12pt">
Результат показан на рис. 12.2. Я считаю эту возможность одной из самых важных в XSL-FO: вы можете помещать элементы в точности туда, куда вам нужно. Допустимо полагаться на поток объектов, создаваемый процессором XSL-FO, но иногда требуется расположить объекты в определенном месте, и теперь вы знаете, как это сделать.
Встроенные форматирующие объекты
Помимо объектов блока, в XSL-FO можно также создавать встроенные (inline) объекты. Встроенный объект представляет собой часть большей форматирующей области, такой как блок; например, встроенный объект может представлять одно или два слова в блоке. Встроенные объекты обычно применяются для форматирования части текста после того, как этот текст был размещен на странице в соответствии с обычным потоком. Можно увеличить первый символ в абзаце, выделить всю первую строку голубым цветом, вставить номера страниц, добавить рисунки и т.д.
Встроенные объекты можно применять для форматирования частей текста блока; например, в главе 11 мы видели, как свойство text-decoration
объекта применялось для подчеркивания текста:
font-family="Times">
Mass;
:
[Earth = 1]
В следующем списке перечислены встроенные форматирующие элементы:
• ;
• ;
• ;
• ;
• ;
• ;
• ;
• ;
• ;
• .
Я опишу несколько самых распространенных встроенных элементов, начав с самого .
Создание встроенных областей:
Как вы уже видели в главе 11, при помощи элемента вы можете форматировать части текста, задавая для них задний фон, подчеркивая текст или заключая текст в границы. Элемент позволяет форматировать встроенную область из нескольких слов в блоке текста как если бы они сами представляли собой блок.
С элементом можно применять следующие свойства:
• общие свойства доступа: 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
;
Читать дальше