I have a small project that I need help with.

I am working on an online survey for a client of mine; which consist of 10 odd pages of questions as well as free text entry on some of the questions. Some of the questions requires number input which then converted into charts (bar graphs etc.)

Survey is done as a web app (using .NET and C# and MySQL) and resulting data converted into XML format in order to generate a report based on the answers that the members provide. Currently data is imported into MSWord and report is generated as .docx file.

Client is not happy with the presentation of the word so I suggested that we can use InDesign to have a better look/feel of the report, using the same XML structure.

There are 1000+ members that need to take this survey, which means that report has to be generated for each client individually (different answers, different inputs, branding and so on.)

I understand the basics of generating a book from XML to InDesign but I can't figure out how can I apply this workflow into producing 1000+ different copies. (with one click if possible!)

Do I need to have 1000+ InDesign documents with SAME XML structure but DIFFERENT branding (different heading colours etc.) or is there a way to generate the reports (in PDF) in a more efficient way.

I'll be happy to answer if you have any questions or need clarification.

Any suggestions welcome Thanks

  • 1
    The "different branding" requirement seems to complicate things, but I don't think I understand what's involved. Copies of a full report (all surveys), each with its own branding, or every individual survey requires different branding? How are "members" and "clients" related? Mar 2, 2012 at 2:30
  • Hi Alan, Thanks for this. There is only one survey(one set of questions), which is answered by 1000+ members(clients). Results then generated into a report which has branding (logo, main colour theme etc.) Members receive their 'own' survey results/report with their branding applied to it (in PDF format) Question is to manage the whole process in a automated way by using XML and InDesign Hope this makes it clear. Best.
    – Sahbas Has
    Mar 4, 2012 at 18:48
  • Everyone fills in the survey, everyone gets a published, branded version of their own survey response. So 1,000 unique documents, structure same but contents and branding vary. I'll answer based on this premise. Mar 4, 2012 at 19:16

2 Answers 2


Without knowing your project in detail, I can only give the outline of how this would work.

Since you're generating the XML from the web app, you have two possible approaches. Each requires some client-side structuring to make it work, which is pretty much the same in both cases. You need a folder and file structure that give each client's branding information a unique and labeled location along with standard file names and types. For example, you could have the logo and color palette (.../branding/clientX/logo.ai, .../branding/clientX/palette.ase) standardly named and appearing in the same places in your structured document.

The most direct approach would be to have the web app emit IDML directly, rather than more generic XML. IDML was designed, in part, to allow exactly this kind of automated publishing.

The indirect approach would be to emit XML that corresponds to a tagged InDesign template. You could script the import of the XML file(s).

Either case requires a variable in the output of your web app that points to the .../branding/clientX/ folder in the branding section, so that the document picks up the correct logo, color palette and any other assets that are unique client to client.

The scripting to produce a complete set of unique PDF documents would not be complex. If you absolutely need them to be editable in Word, there's a PDF2Office app from Recosoft that does an astounding job of conversion.

An excellent guide to XML in InDesign is James Mailvald's "A Designer's Guide to Adobe InDesign and XML".

A complete description of IDML is available as a download from Adobe, and there's a .NET library on CodePlex that should help with that aspect. IDML is the direction I would recommend, because it is future-proof: any version of InDesign from CS4 onward will be able to read IDML and create a valid InDesign document from it.

  • Alan thanks for detailed answer. I think IDML would be difficult as neither me nor the developer has have time to figure that out.(project due in six weeks). However having .NET library definitely makes it worth checking it out. I will definitely consider for the next version. Client is already managing this workflow with XML to Word so XML route should be easier to adapt for now. I guess the next challenge is figure out the scripting. But this is another question. Thanks again for your answer.
    – Sahbas Has
    Mar 4, 2012 at 21:00

You would probably have to make a "brand guide" in XML or I would use a spreadsheet for each client. You need a template for your clients' headers. The template would fill the design elements from XML set Client logos, info and colors, then fill the rest out with the resulting data from the surveys. Report two would repeat. Styling from XML set for Client two, then results. Or the alternative is to make a 1000 templates and drive yourself nuts updating. But the key is to make another XML containing clients' data to fill the header.

Added: You can run it from the web app. When a survey is done, have it automatically spit out an XML into a "watched folder" on your server, and then the script could be activated. Email the result to let someone check it before sending it to the client. This is so if there are any errors you see it before the client gets in an uproar and adjust any scripting or encoding needed, XML is funny with characters other than letters and numbers.

After a certain number of trials, you can automate it so it goes straight to the client and a CC to an Acct Exec for the record. In addition adding a button for the client to retrieve it on their own as well. If the survey constantly changes say 3 or 4 times a week, let the client decide how quickly they want it, eg. daily, weekly, hourly updates. In this case if you want someone to open and do it themselves, an email alert with the output and client's name in the subject with the appropriate header XML or link to the where the folder resides so there is no thought process needed to look for the files. You can also use javascript, which I forgot about and might be easier. Since you have InDesign, I'm assuming you have Distiller which the ID file can be dumped into the folder for processing. Anything passed the saving of the finalized document needs attention until the everything passes with no errors a certain number of times. Anything from missing files to corrupt fonts or wrong color scales may cause it to error out. Naming the files with unique codes is key so the proper fields are populated which once again can be in the XML or the database for retrieval when being sent.

I set up a similar system 3 times over the years using Applescript and PHP with Excel. It's quite intensive and you definitely need to break it up. Most times, we had the previous script calling the next script when the code finished running as a bridge to keep from getting occasional errors from the computer not catching up.

VB Scripting Guide for Adobe InDesign for reference CS5.5

Samples of scripts for Reference

  • Stefan many thanks for your answer. Makes a lot of sense to contain branding info on a separate XML. Could you please help me explain how would you run the whole thing as a batch process? Is there a script or tool that can automate generating the reports? As in: - Open the Survey 1, - Load XML for answers and branding - Export the PDF - Move to Survey 2 repeat Many thanks
    – Sahbas Has
    Mar 4, 2012 at 18:36
  • I'm assuming you're using a PC. It'll most likely run in VB Script, which I have no knowledge, where to start. In Mac, it would be an applescript. I would do the motions with Automator recording the actions than change all the static file names to variables or loops to access all the files. If the survey is in a database you can extract all the surveys in a timely fashion, end of day or every hour, or a user press. Can you tell me the exact setup and I'll write out something with links if necessary. I need more info on the actual setup. Mar 5, 2012 at 16:17
  • Thanks Stefan, Yes we're on PCs and there is no set up yet. I was hoping to run the whole process from the web app: - User completes the survey (they have two months two to finish the surver - a lot of info going in) - Clicks on 'Generate my report' button - Database then spits out the IDML or XML (not decided yet) - Data passed to InDesign server - IDS puts branding and survey results together - Generates the PDF document - User then can download the PDF from the web app once it is completed. This is the perfect solution
    – Sahbas Has
    Mar 5, 2012 at 21:06
  • Continues: - User completes the survey - IDML or XML data generated as soon as the survey is finished - A person manually opens InDesign software and imports the XML - Exports the PDF (File > Export etc.) - PDF sent to client via email This is the we-can-live-with-this solution for now.
    – Sahbas Has
    Mar 5, 2012 at 21:10
  • Added what I could, hopefully between Alan's and my answer you can scrape enough info to get it together. Mar 6, 2012 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.