I am trying to bulk generate greeting cards from an excel(or csv) table in which multiple people have generated customized messages for each recipient.

  • Each card can have a different number of people who have written a message.
  • Each message-writer has their own column in the excel file.

Ideally, I would like each message writer to have their own default font. As there will be variable number of messages (of varying length) on each card, I need some sort of auto-arrange so that all the messages fit and scale onto a single card/image.

Does anyone know of any program that can help translate this table into a graphical layout. I'm open to fully programatic solutions (D3.js maybe?) or ways to work with existing graphic design apps like inDesign.


1 Answer 1


You're looking for Data Merge.

From Adobe:

About data merge

To create form letters, envelopes, or mailing labels, you merge a data source file with a target document. Data merge is also referred to as mail merge.


Most of this can be managed in the Data Merge Panel.

  1. Create or open the document you’ll be using as the target document.
  2. Choose Window > Utilities > Data Merge.
  3. Choose Select Data Source from the Data Merge panel menu.
  4. To change delimited text options, select Show Import Options.
  5. Locate the data source file, and click Open. If you selected Show Import Options, change the delimiter and encoding options as necessary, and then click OK.
  6. The data fields appear in the Data Merge panel.

Determine how you want the final document to look, so that you know which fields are necessary to accomplish the merge. For example, if you are creating a postcard that is mailed to customers, you can use the following data fields:

<<Company Name>><<Address>><<City>>, <<State>><<Postal Code>>

You can create these fields on your page by dragging and dropping items from the Data Merge panel (once a data source has been selected).

You can preview the records to make sure that the target document will look the way you intend.

Lastly, merge the target document with the data source file, or export to PDF.

Source Adobe Help Reference

Further info:

  • Given that I'm not sure how long each message will be, is there a way to auto arrange the text boxes after the text has been imported so that there is no overlap? Also, some of the columns in the csv might not be populated for some rows, will that text box just be blank in InDesign and can auto arrange deal with this (by not arranging the blank text boxes?)
    – Snapula
    Commented Mar 10, 2016 at 15:48
  • 1
    It's best to set up on item (i.e., greeting card) as a template. The Data Merge can then create a new document with multiple instances on a page for easy printing. It also lets you preview the data. Commented Mar 15, 2016 at 17:53
  • 1
    I don't think you can auto-arrange easily without a script. It you put all the text into one text frame, it will reflow automatically. Commented Mar 15, 2016 at 17:54

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.