Table Properties
The table is the top-level container for rows and cells and provides properties for column and cell behavior. The fTable object in PTC Arbortext Layout Developer’s Formatting Object Model represents the table and has extensive properties to configure its behavior. Once an fTable object is created, the FOM formatting process requires that it is started and ended. Note that the table row and cell objects have no end command — they only need to be started.
Table properties include the following:
• Width
It is important to give a table width. Unexpected results may occur if one is not provided. Without a specified width, PTC Arbortext Layout Developer calculates a table’s width based on the columns, gutters, and rules it contains.
The table width can be specified using absolute values or a percentage of the available measure. Tables which are narrower than their container can be aligned to the left or right or centered using the fTable.horizontalAlign property.
• Margins
Table margins are space applied outside the table area and can be applied to each edge individually. Top and bottom margins can take a priority value to provide information for margin merging, as with blocks. The highest priority adjacent margin is applied.
• Padding
Table padding is applied inside the table area and can be applied to each edge individually. Padding pushes the content area of the table inwards, reducing the space available for table cells.
• Rules
Rules are applied to edges of the table content area, outside padding. They push the table content inwards. Up to 20 separate rules can be applied to any table, to any combination of edges. A rule with a negative thickness value works towards the outside of the table boundary.
Tables have a background color property that applies color behind the whole table. Row background color is controlled at the table cell level.
Refer to Rules for information on rule properties.
• Columns
The table object defines the column configuration for the table with the fTable.columns array. The number of columns is specified using the fTable.numColumns property, which creates the columns array accordingly. Each element in the array is an fTableColumn object, which is used to specify column-level behavior.
• Orientation
Tables can be rotated in 90 degree measures with the fTable.orientation property.
• Vertical justification
Tables appear within the flow of text. Vertical justification settings allow space outside the table, and between rows, to be stretched to justify the page.
• Avoid
Tables in PTC Arbortext Layout Developer have the same avoid settings as blocks. The settings allow them to be used for side by side layouts without the need for a container block. fTable.avoid keeps the following content away from the table. fTable.positionReset ensures the following content is positioned where the table started.
• Overflow
A table’s behavior when it overflows the bottom of a text column can be controlled with the fTable.overflow property to produce different results. There are four types of overflow mode:
◦ 0 — ends the table structure at the bottom of the page and reverts to normal text formatting mode
◦ 1 — carries the row in which the break occurred over to the next page, ensuring that the top of the row is kept together
◦ 2 — allows the row to break in the middle and restart mid-row on the next page
◦ 3 — continues content that overflows the first column into the next column until the columns are full. When the columns are full, it will break the page and restart from the first column.
This special mode supports the PTC Arbortext Layout Developer feature of slim tables. In slim tables content fills the table columns as if they are page or block columns.
The values for the mode are described in the fTable.OverflowMode constant.
• Behavior if too wide
The fTable.widthMode property specifies a table’s behavior if it is too wide for the available measure:
◦ 0 — allows the table to overflow beyond the text measure (default)
◦ 1 — removes any columns that do not fit and discards them
◦ 2 — removes any columns that do not fit and keeps them to be output in a copy of the table below the current one
It is possible to specify master columns that act as stub columns repeated before the overflowed columns.
◦ 3 — uses column sets to ensure groups of columns are kept together if the table is too wide
• Default settings for child objects
◦ fTable.defaultRow — default settings for the rows in this table (fTableRow object)
◦ fTable.defaultCell — default settings for the cells in this table (fTableCell object)