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

ЖАНРЫ

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

Шрифт:

<fo:block text-align="center" line-height="22pt"

font-family="sans-serif" font-size="18pt">

Description of Service

</fo:block>

</fo:block-container>

<fo:block-container border-color="black" border-style="solid"

border-width="1pt" height="4cm" width="9cm" top="4.0cm"

left="0cm" padding="2pt" position="absolute">

<fo:block text-align="start" line-height="15pt"

font-family="sans-serif" font-size="12pt">

</fo:block>

</fo:block-container>

<fo:block-container border-color="black" border-style="solid"

border-width="1pt" height="1.0cm" width="9cm" top="3cm"

left="10cm" padding="2pt" position="absolute">

<fo:block text-align="center" line-height="22pt"

font-family="sans-serif" font-size="18pt">

Address for Payment:

</fo:block>

</fo:block-container>

<fo:block-container border-color="black" border-style="solid"

border-width="1pt" height="4cm" width="9cm" top="4.0cm"

left="10cm" padding="2pt" position="absolute">

<fo:block text-align="start" line-height="15pt"

font-family="sans-serif" font-size="12pt">

</fo:block>

</fo:block-container>

</fo:flow>

 </fo:page-sequence>

</fo:root>

Документ PDF,

который процессор fop создаст из
blockcontainers.fo
, показан на рис. 12.2. Как можно видеть на рисунке, я поместил различные блоки в разные места документа. Некоторые прямоугольники должны быть размещены сразу же поверх других, поэтому в данном случае размещение играет важную роль.

Рис. 12.2. Применение контейнеров блоков 

На самом деле работать с контейнерами блоков просто. Взгляните, например, на прямоугольник «Description of Service» (Описание услуги) на рис. 12.2. Я создал его при помощи двух контейнеров блоков: один из них содержит заголовок «Description of Service», а второй — пустой прямоугольник сразу под первым. Для создания прямоугольника заголовка я применил элемент

<fo:block-container>
, указав размеры прямоугольника в свойствах
height
(высота) и
width
(ширина) и задав границу в свойстве
border-width
. Положение прямоугольника на странице я задал, установив свойство
position
в
absolute
и установив свойства
left
(левый) и
top
(верхний) для размещения верхнего левого угла прямоугольника по отношению к верхнему левому углу страницы:

<fo:block-container border-color="black" border-style="solid"

 border-width="1pt" height="1.0cm" width="9cm" top="3cm"

 left="0cm" padding="2pt" position="absolute">

 .

 .

 .

</fo:block-container>

Теперь

я могу включить в контейнер блок, содержащий заголовок «Description of Service»:

<fo:block-container border-color="black" border-style="solid"

 border-width="1pt" height="1.0cm" width="9cm" top="3cm"

 left="0cm" padding="2pt" position="absolute">

 <fo:block text-align="center" line-height="22pt"

font-family="sans-serif" font-size="18pt">

Description of Service

 </fo:block>

</fo:block-container>

После этого я размещаю пустой прямоугольник сразу под прямоугольником заголовка:

</fo:block-container>

<fo:block-container border-color="black" border-style="solid"

 border-width="1pt" height="1.0cm" width="9cm" top="3cm"

 left="0cm" padding="2pt" position="absolute">

 <fo:block text-align="center" line-height="22pt"

font-family="sans-serif" font-size="18pt">

Description of Service

 </fo:block>

</fo:block-container>

<fo:block-container border-color="black" border-style="solid"

 border-width="1pt" height="4cm" width="9cm" top="4.0cm"

 left="0cm" padding="2pt" position="absolute">

 <fo:block text-align="start" line-height="15pt"

font-family="sans-serif" font-size="12pt">

 </fo:block>

</fo:block-container>

Результат показан на рис. 12.2. Я считаю эту возможность одной из самых важных в XSL-FO: вы можете помещать элементы в точности туда, куда вам нужно. Допустимо полагаться на поток объектов, создаваемый процессором XSL-FO, но иногда требуется расположить объекты в определенном месте, и теперь вы знаете, как это сделать.

Встроенные форматирующие объекты

Помимо объектов блока, в XSL-FO можно также создавать встроенные (inline) объекты. Встроенный объект представляет собой часть большей форматирующей области, такой как блок; например, встроенный объект может представлять одно или два слова в блоке. Встроенные объекты обычно применяются для форматирования части текста после того, как этот текст был размещен на странице в соответствии с обычным потоком. Можно увеличить первый символ в абзаце, выделить всю первую строку голубым цветом, вставить номера страниц, добавить рисунки и т.д.

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