
The automatic generation of InDesign/PDF documents from an XML/JSON data source is one of our specialties. In this way, we can set up a data workflow between the customer’s tool [1] and our solution, the user clicks on a button and gets an InDesign/PDF document: great!
When it comes to setting up data on the page, just as painters are restricted by the dimensions of the canvas, as architects and sculptors are dependent on gravity, layout and design teams are also subject to the same rules and have a limited scope of action: the page [2]. The layout is a game of balance between the data and this space.
We therefore identify two cases: is my layout limited to a page or part of it, or can I create other pages if there is not enough space?
In the first case, the layout is restricted by the targeted surface. It is a question of fitting all the data. It is therefore this surface that takes precedence over the data. So we have to find solutions to place them all there: we work on the body of the text, the layout, and place tables… In this case, the page layout is driven by the page.

In the second case, it is the data that takes over the structure. It runs along and pages are created as long as there is enough information to place [3]. In that case, the layout is driven by the data.

Technically, in both cases, we can observe the same general outline:

- A real example of the implementation of a 100% generation solution;
- A tutorial that explains how to build layout rules for J2S Layout Toolbox. – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

1- It can be a PIM, a CMS, a DAM, or whatever you want.
2- After all, creativity is born out of limitation, isn’t it?
3- However, even, in this case, there are restrictions. The total number of pages may be limited; for example, because the binding is already done. Or, if the document is printed in signatures, the total number of pages may have to be a multiple of the number of pages in the signatures. Not to mention that it is not a matter of ending the generation on a 90% blank page.