FOP implements the fo objects and properties listed
in
Only works for table of contents without any problems. The case where the page number doesn't fit on a line isn't handled, and any text on the same line and after the page-number might not appear exactly where you want it to.
The fo working draft allows describes two ways to markup lists.The list-block must have as children either: 1) pairs of fo:list-item-label and fo:list-item-body formatting objects, or 2) fo:list-item formatting objects.
At the moment FOP only implements the second way. Therefore a list has a basic structure like this:
<fo:list-block>
<fo:list-item>
<fo:list-item-label><fo:block></fo:block></fo:list-item-label>
<fo:list-item-body><fo:block></fo:block></fo:list-item-body>
</fo:list-item>
</fo:list-block>
Padding works in conjunction with indents and spaces. It is only implemented for blocks. At the moment padding can't be used to make extra space (indents+spaces must be used), but only to control how much the background-color extends beyond the content rectangle.
There two limitations for tables: 1) FOP needs you to explicitly specify column widths 2) Cells have to contain block-level FOs. They can't contain straight character data.
A working basic example of a table looks like this:
<fo:table>
<fo:table-column column-width="150pt"/>
<fo:table-column column-width="150pt"/>
<fo:table-body font-size="10pt" font-family="sans-serif">
<fo:table-row>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>text</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>