Tables

Last updated March 23, 2026

The Table block creates a full semantic HTML table automatically — when you add one, the builder generates the complete structure so you start with a ready-to-use table.

Table structure

When you add a Table block, the builder creates the entire hierarchy: a table element containing thead and tbody, each with rows (tr), header cells (th), and data cells (td). These sub-elements don’t appear in the Blocks panel — they only show up in the Elements tree when you expand the Table block.

A Table block showing the auto-generated structure in the Elements tree

Managing rows and columns

Use the Settings panel to add or remove rows (in thead or tbody separately) and columns (which affects all rows at once).

Select individual th or td cells in the Elements tree and edit their text content like a regular Text block.

Border modes

The Table block supports two border rendering modes:

  • Border-collapse — adjacent cell borders merge into a single shared border.
  • Border-separate — each cell keeps its own independent border, and you can control the spacing between them.

Toggle between the two in the Styles panel.

Styling cells

Select any cell (th or td) in the Elements tree, then switch to the Styles panel to adjust padding, background color, text alignment, borders, and typography.

Use the copy/paste styles feature (right-click context menu or keyboard shortcuts) to apply the same styling to multiple cells quickly. This saves a lot of time when you need consistent formatting across an entire row or column.

Dynamic rows

You can generate table rows from your data using the repetition setting. Select the tr element inside tbody, open the Logic panel, and configure repetition to iterate over a collection from your data.

For example, if your data contains an items array, set the repetition to loop over items. Each cell in that row can then reference item.name, item.quantity, item.price, and so on.

See Conditions and Loops for full details on repetition bindings.

Even/odd row styling

For zebra-striped tables, use situational styling to apply different backgrounds to odd and even rows. This makes large tables easier to scan.

See Situational Styling for setup instructions.

Frequently asked questions

How do I add a table to a PDFMonkey builder template?
Drag a Table block from the Blocks panel onto the canvas. The builder automatically creates the full structure—thead, tbody, rows, header cells, and data cells—so you start with a ready-to-use table.
How do I generate dynamic table rows from data in PDFMonkey?
Select the tr element inside tbody, open the Logic panel, and configure Repetition to iterate over a collection from your data. Each cell in that row can then reference item properties like item.name or item.price.
Can I style individual table cells in the PDFMonkey builder?
Yes. Select any th or td cell in the Elements tree, then use the Styles panel to adjust padding, background color, text alignment, borders, and typography. You can also copy and paste styles between cells.