Skip to content

Components Reference

Omni Designer includes a comprehensive library of components to build complex and data-rich reports. You can drag and drop these from the Components sidebar tab onto your canvas.

Screenshot placeholder
The Components panel in the sidebar

Used for static content like labels, titles, or headers. You can still insert dynamic variables inside a text block using the expression syntax ${expression}.

Key properties:

  • Content text (static or mixed with expressions)
  • Font family, size, weight, color
  • Text alignment (left, center, right, justify)
  • Background color, border, padding
  • Text wrap and overflow behavior
  • Fallback fonts for CJK, Arabic, Hebrew, Thai, Devanagari, and Cyrillic scripts

Specifically designed for displaying dynamic data from Odoo. When you drag a field from the Data tab, a Field component is automatically created with its expression properly bound.

Key properties:

  • Expression (e.g., ${partner_id.name})
  • Format pattern (for numbers, dates)
  • All the same styling options as Text
Screenshot placeholder
Text and Field property panels

Place static logos or dynamic product/partner images.

Key properties:

  • Source: Static URL, uploaded image, or bound to an Odoo binary/image field
  • Object fit: Cover, Contain, Fill controls how the image scales within its bounding box
  • Border, border radius, background color
Video placeholder
Setting up a static logo and a dynamic product image

Draw horizontal or vertical divider lines to visually separate sections of your report.

Key properties:

  • Color
  • Thickness (stroke width)
  • Dash pattern (solid, dashed, dotted)

Add geometric shapes for visual flair or background emphasis. Click the dropdown arrow on the Shape tile in the Components panel to select a sub-type.

Available sub-types:

  • Rectangle with configurable corner radius for rounded rectangles
  • Ellipse perfect circles or ovals
  • Triangle
  • Star

Key properties:

  • Fill color and opacity
  • Stroke color, width, and dash pattern
  • Corner radius (Rectangle only)
  • Rotation angle
Screenshot placeholder
Shape sub-type selector and shape styling

The core mechanism for repeating data (like order lines or invoice lines).

  • Set the Data Source property to a One2many or Many2many field path (e.g., order_line).
  • Any elements placed inside the Section will repeat vertically for every record in that dataset.
  • Sections support alternating background colors and repeating table headers.
  • When editing a Section, click it to enter Section Edit Mode. The Data tab will automatically switch to show fields relative to the Section’s data source.
Video placeholder
Creating a Section for order lines and binding fields inside it

A powerful grid-based layout structure for building structured output like invoices, price lists, and forms.

Table operations:

  • Add/Remove columns: Right-click a column header to insert or delete columns
  • Resize columns: Drag the column borders in the header row to adjust widths
  • Cell content types: Each cell can hold Text, an Image, or a Barcode/QRCode switch types via the cell content type selector
  • Cell styling: Select individual cells to configure font, color, alignment, padding, and borders independently
  • Footer row: Tables include a footer row with support for colspan (merged cells) for totals and summaries
Video placeholder
Working with Table columns, cell types, and footer merging

A generic grouping container. Use Frames to:

  • Group multiple elements together so they move and resize as a single unit
  • Apply a common background, border, or padding to a collection of sub-elements

Generate industry-standard barcodes directly in the PDF without server-side image generation.

  • Click the dropdown arrow on the Barcode tile in the Components panel to switch between Barcode and QRCode sub-types.
  • Bind the value to an Odoo field (like a product barcode or tracking reference).
  • Supported barcode standards include EAN-13, Code 128, Code 39, and more.
Screenshot placeholder
Barcode and QRCode components with data binding

Forces the renderer to start a new page immediately after this element. Drop it anywhere in the content flow to control report pagination manually.


These features are available across most component types.

You can lock any element to prevent accidental modifications. A locked element cannot be moved, resized, or deleted until it is unlocked.

  • To lock: Right-click the element and choose Lock from the context menu.
  • To unlock: Right-click the locked element and choose Unlock.

This is especially useful for background shapes, logos, or fixed design elements that should not change.

Every element has a Visibility section in the property panel. You can set expression-based conditions that control whether the element appears in the final output.

  • Example: ${state == 'sale'} the element only renders if the order is in “Sale” state.
  • See the Data Binding & Expressions page for more details.

Beyond simple visibility, you can apply conditional styling rules to elements. For example, change the text color to red when a value is negative, or highlight a row with a yellow background based on a condition.

  • Open the Dynamic Styles section in the property panel.
  • Add rules with an expression condition and style overrides (color, background, font weight, etc.).
  • Multiple rules are evaluated in order; the first matching rule applies.
Screenshot placeholder
Dynamic Styles editor dialog