Выбрать главу

 <fo:page-sequence master-name="page">

  <fo:flow flow-name="xsl-region-body">

   <fo:block-container height="4cm" width="12cm" top="0cm" left="0cm"

    position="absolute">

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

     font-family="sans-serif" font-weight="bold" font-size="14pt">

     Starpowder

    </fo:block>

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

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

     The Starpowder Building:

    </fo:block>

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

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

     1 Starpowder Avenue

    </fo:block>

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

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

     New York. NY. 10011

    </fo:block>

   </fo:block-container>

   <fo:block-container height="1cm" width="6cm" top="0cm" left="14cm"

    position="absolute">

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

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

     Invoice

    </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.2cm"

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

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

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

     Date

    </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="12.0cm" padding="2pt" position="absolute">

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

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

     January 1, 2002

    </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.2cm"

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

    <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"