Create print layouts with Carbone
Print customization is an Enterprise feature available on request that requires a valid license purchased from Ninox or a certified partner.
This feature is currently in beta testing and will be released in 3.7.0.

Introducing a new print engine

How does it work?

Ninox uses a third-party integration, Carbone, to find all markers {} in your document (.xlsx, .odt, .docx, ...) and replace these markers with Ninox data. According to the syntax of your markers, you can make a lot of operations including:
  • Replacing a field
  • Formatting data
  • Repeating a document portion (a table row or anything else)
  • Looping on unlimited nested arrays
  • Conditionally displaying a data based on a test expression
The syntax is similar to using a JSON Array or Object in Javascript.
Combined with features of LibreOffice or MS Office, you can easily create documents with:
  • Graphics
  • Headers, footers
  • Automatically repeated table header across pages
  • Insert computed field
  • Page count
  • ...

Which file formats are supported?

Carbone supports the file formats listed below. The output format in Ninox is .pdf.
  • .xml
  • .xhtml
  • .odt
  • .ods
  • .odp
  • .docx
  • .xlsx
  • .pptx
  • .odg
  • .idml

How do I create a new layout with Carbone?

  1. 1.
    Open a database to open a table that contains specific records you want to print.
  2. 2.
    Open a record. The record view slides in from right-to-left.
  3. 3.
    Click the print icon from the toolbar on the right side of your screen. A print layout view opens.
  4. 4.
    Click the plus icon to create a new layout. The Create new layout popup appears.
  5. 5.
    Choose Dynamic, then click the Import layout icon.
  6. 6.
    When selected, the popup displays the name of the file. Click the Create button to finish merging data from your .doc/.docx file.
  7. 7.
    Preview the merged layout—if you're happy with how it looks, proceed to print by clicking the Print button.
<SCREENSHOT once available on a PROD private cloud>

Set the recursion level (optional)

The recursion level preferences are located in the toolbar on the right side of your screen when previewing a layout. By default, the recursion level is set to a minimum of 3. To prevent Ninox from exhausting itself, we provide a certain “depth” to determine how far it should go.
Recursion level set to 3—the default value (minimum)
The first item (= record) of the recursion level is always 0, the second item is 1, and so on.
If the last record references the first record, Ninox can become stuck in a loop.
Toggle on the Custom JSON option for more flexibility—write your own script to determine how Ninox data should be displayed when printed.
Toggle on Custom JSON to input your own script

How many renders do I get?

You get 1000 renders per month by default. For more renders, please contact Ninox Support and request an upgrade.
Tip when creating Carbone templates using Ninox functions
If the name of a report includes Carbone, it will be sent to the Carbone server and thus counted towards your allocated quota of 1000 renders/month.

Which Ninox functions can I use with Carbone?

The following existing functions received an update to support Carbone

The following functions have been added to work with Carbone only

Can I create and edit reports in Ninox?

The short answer: No.
The process of creating and editing reports is completely decoupled from the Ninox system. Since you're now free to use software like MS Office, Libre Office, OpenOffice, etc., you have a lot of flexibility and more tools than what's currently possible in Ninox.

Why is data missing in my rendered report?

If unsupported characters are used, data won't be rendered.
This may be happening when name fields and variables do not match. Ninox fields and variables used in the template must be identical.
Carbone only accepts underscore _ and CamelCase in variables. Other characters and white spaces are not supported.

The use of quotation marks

The text editor you're using may replace quotes with ones that cannot be interpreted by Carbone. To use the right quotes, you have to perform the following manipulation and use only simple quotes.