How to use data from pdfmake playground in design editor?

I’ve created a table in and wanted to use this table in the design editor in Invoiceninja.
However when I paste the data, I get a lot of errors from Invoiceninja.
Is there a guide how to use existing pdfmake code?


One common problem is in Invoice Ninja the app requires all fields/values to be enclosed in double quotes. We don’t have a guide on it though.

Thanks for the hint with the double-quotes.
However I can’t even define a simple table width:

‘table’ and ‘widths’ need to be surrounded by double quotes

OK, understood.

However this still doesn’t create a table. Instead a TypeError is showing?

OK let me ask this in general.

I have a working design in and would like to implement this into the invoice design. Has anyone else done this? Is anyone able to help? I’m willing to pay for this.

We recommend this company:

Note: in v5 we’re using HTML/CSS for the designs which is much easier to customize.

Yes, I’ve read about the v5 html/css designs. But not all functions (such as recurring invoices) are available yet, that’s why for the moment I have to stick with 4.x.

Thanks for the link.

FYI… recurring invoices are now available in v5, we plan to share a new release after the weekend with a few more modules (tasks, expenses, projects and vendors)

1 Like

Persistence pays off, it seems.
I finally managed to get the design into Invoiceninja. The keys to success were for once your hint that double-quotes need to be used, on the other hand the footer was just too small for the wanted design so I needed to enter it into the main content of the invoice.
Besides that, the pdfmake playground accepts some “array fault” where a trailing , was accepted, in Invoiceninja this needs to be corrected.

Finally, this is how the implemented Swiss QR design looks in Invoiceninja:

If anyone is interested in getting this into their InvoiceNinja, contact us on .

1 Like

@hillel is there a way to ensure the table stays together in case of a page break? Or enforce a page break if there’s not enough space left on the invoice?

EDIT: Found the solution myself, by adding

"unbreakable": true,

to the relevant section (src:

1 Like