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

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

     Terms

    </fo:block>

   </fo:block-container>

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

    border-width='1pt' height='0.7cm' width='3.5cm' top='1.9cm'

    left='15.5cm' padding='2pt' position='absolute'>

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

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

     Immediate

    </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='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>

   <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, но иногда требуется расположить объекты в определенном месте, и теперь вы знаете, как это сделать.

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату