XSL-FO Table

XSL-FO uses the <fo:table-and-caption> element to define a table.

XSL-FO Table

The XSL-FO table model is very different from the HTML table model.

There are nine XSL-FO objects that can be used to create tables:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

XSL-FO uses <fo:table-and-caption> element to define a table. It contains a <fo:table> and an optional <fo:caption> Element.

The <fo:table> element contains:

  • Optional <fo:table-column> elements
  • Optional <fo:table-header> elements
  • <fo:table-body> elements
  • Optional <fo:table-footer> elements

each of these elements may have one or more <fo:table-row> elements, and <fo:table-row> It will also have one or more <fo:table-cell> Element:

<fo:table-and-caption>
<fo:table>
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>
<fo:table-header>
  <fo:table-row>
    <fo:table-cell>
      <fo:block font-weight="bold">Car</fo:block>
    </fo:table-cell>
    <fo:table-cell>
      <fo:block font-weight="bold">Price</fo:block>
    </fo:table-cell>
  </fo:table-row>
</fo:table-header>
<fo:table-body>
  <fo:table-row>
    <fo:table-cell>
      <fo:block>Volvo</fo:block>
    </fo:table-cell>
    <fo:table-cell>
      <fo:block>$50000</fo:block>
    </fo:table-cell>
  </fo:table-row>
  <fo:table-row>
    <fo:table-cell>
      <fo:block>SAAB</fo:block>
    </fo:table-cell>
    <fo:table-cell>
      <fo:block>$48000</fo:block>
    </fo:table-cell>
  </fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-and-caption>

The output of the above code: