I would like to know if there is a way to handle minor content changes in InDesign 5.5. I need to create a few different versions of a document where the majority of the content will remain the same but some of it will change.

For example, the heading in one document might read "Foo Bar" and the same heading in the other document might read "Hello World".

I only have a few variations so a data merge isn't what I am looking for. I also don't want to manage separate documents.

Is there a way to create multiple "views" of a document with different layers or content turned on/off, or even replaced with alternate text?

  • Have you tried Master Pages or layers?
    – Scott
    Nov 14, 2012 at 0:39
  • Scott, I have not. I've just got the document set up as two separate pages right now. The feature Text Variables looks close to what I need. I basically just want to define a variable called "Title1","Title2", etc and then manually change the value from within Indesign
    – BrianV
    Nov 14, 2012 at 0:52
  • Yeah, for what it's worth - layers could work for some spots, but there is copy inside the paragraphs where 1 word needs to be changed so layers wouldn't work in those cases..I don't think.
    – BrianV
    Nov 14, 2012 at 0:53

2 Answers 2


If you're looking at tiny edits within paragraphs of text, I think I'd handle this with 2 documents.

While using Master pages or layers can be helpful it is often too easy to overlook something.

Variable text may also work, but that seems like a great deal of overhead for a few minor changes.

I'd use 2 documents. This makes things much easier to track, proof, and return to later.

I often create sales pieces for clients with 20+ versions and the only difference between versions is a phone number and address. I've tried many dynamic methods for retaining those minor items in a single file and nothing has been as bullet-proof as simply creating a new document, making changes, and cataloging the file well.

  • I second this; I've done the same thing as Scott. You may want to start with a template, but beyond that, individual documents cause the least confusion. Nov 14, 2012 at 11:22
  • Could be, there may not be a good way to do it in InDeisgn. There is a feature in Fireworks that makes what I requested really easy, and for me, it would be better than managing multiple documents with only 1-2 words changed.
    – BrianV
    Nov 14, 2012 at 13:14

I ended up rolling my own rudimentary solution using the Scripts feature. A tab-delimited text file is used to define "variables", and then the script runs a search and replace for each variable defined. I will have one document that acts as the master, and then generate my child documents from the master.

Input file test.txt

{adj}   quick
{Animal}    Fox
{animal}    fox
{action}    jumped
{item}  chair

InDesign document before running script

enter image description here

InDesign document after running script

enter image description here

jsx script

//TODO: figure out a better way to set the files
var parts=readVars("test.txt");

//run  the replace
for (var i in parts){

//read a tab delimited file
function readVars(fileName)
    var fileIn=File(fileName);
    var data = fileIn.read();
    return getData(data);

//split up a string into tab delimited data 
function getData(data)
    var parts=data.split("\n");
    var result=[];
    for (var i=0;i<parts.length;i++)
        var itemParts = parts[i].split("\t");
        result.push({"find": itemParts[0],"replace": itemParts[1] });

    return result;

function find(text,replacement)
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = text;
//Set the find options.
app.findChangeTextOptions.caseSensitive = true;
app.findChangeTextOptions.includeFootnotes = false;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findChangeTextOptions.includeLockedLayersForFind = false;
app.findChangeTextOptions.includeLockedStoriesForFind = false;
app.findChangeTextOptions.includeMasterPages = false;
app.findChangeTextOptions.wholeWord = false;

var foundItems = app.documents.item(0).findText();

    for (var i=0;i<foundItems.length;i++)

  • Scripted search is the best answer to this. For very limited changes, you could just save a search/replace preset and run it within your doc each time you output. I prefer the script solution because it's easier to repurpose and allows you to change a lot of variables in one go. Nov 14, 2012 at 17:21

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.