In September 2017 an old friend from my IED years, Federico Proietti, contacted me. He was a bit desperate. «I have a huge book with a lot of contact data to compose, do you have any InDesign plugin or tools to suggest?» «Yes,» I said «Myself!»

MIA – Mercato Internazionale Audiovisivo is a large fair devoted to transnational deals in the audio-visual field. Rights for movies, documentaries, tv shows, you name it. Each fair participant receives a goodie bag with a lot of precious information concerning companies, projects, and people. The biggest printed volume among all is the Industry Guide, a thick and dense book with references for all the fair participants. For each one: name, email, phone number, position, and so on. Basically, it’s an address book.

If you need to compose such a book of 800 companies from 50 countries with about 1,000 featured participants, you cannot do that the usual way. So, we decided to develop some custom software in order to make the transformation of the data conceived by the editorial team in a book as linear as possible. There were two big goals to hit:

We opted for GoogleSheets as a platform to store the data. The editorial team was already used to that set of tools and they had a business account with plenty of space for photos and documents.

Using the gSpread python module developed by Google, I then wrote a script able to generate an XML InDesign compatible file. This markup file contained each element of the typographic composition organized per tag. Each tag was also linked to a style defined in InDesign.

Each time I was generating a new XML because of some changes to the database, I only needed to update the XML link in InDesign and watch the program update the entire document. A pleasant way to nurse my tea: watching a machine do my job. Contact images were then linked to an object style thanks to the find/replace panel (only text styles can be arranged through XML). Another important benefit was the ability to push some deadlines forward, helping the editorial team organize a more streamlined review process.