Skip navigation
fluttergirl86
Currently Being Moderated

Automate Logo Replacement on InDesign Poster

May 27, 2013 12:00 AM

Tags: #problem #indesign #links #pages #layout #indesign_cs5 #automate #scripts #logos #indesign_scripts

Hi,

 

I have a poster that I need to customise for 70+ community groups. It is the exact same poster, with a different logo on each one. There are 70+ logos to add, so 70+ versions of the poster.

 

All of the logos are similar dimensions. The logo will be placed in the exact same spot for each poster and will be the same size.

 

Is there anyway to automate this process? I can't seem to wrap my head around it. We are using Macbook Pros.

 
Replies
  • Currently Being Moderated
    May 27, 2013 4:12 AM   in reply to fluttergirl86

    That's not too hard to script. But first,

    1. Give the logo's placeholder frame a name: select the frame, open the Layers panel, and replace the default name <rectangle> with logo (to replace the name, click the name twice).

    2. Place all your logos in a folder, make sure that there's nothing else in that folder.

     

    Then run the script. The script displays a dialog in which you can select your logo folder. Each poster is saved in the logo folder using the logo's name. So if you have logos one.png and two.jpg, you'll get one.indd and two.indd. If for some reason a logo can't be placed, the poster is saved with #### suffixed to its name (three####.indd).

     

     

    if (app.documents.length == 0){
        alert ('Open the poster.'); exit();
    }
     
    if (!app.documents[0].rectangles.item('logo').isValid){
        alert ('Can\'t find the logo frame.'); exit();
    }
     
    main();
     
    function main (){
        var folder = Folder().selectDlg();
        if (folder == null) return;
        var name = app.documents[0].name.replace(/\.indd$/,"");
        var logos = folder.getFiles("*.*");
        for (var i = 0; i < logos.length; i++){
            try {
                app.documents[0].rectangles.item('logo').place(logos[i]);
                app.documents[0].save(File(folder+'/'+logos[i].name.replace(/\.\w+$/,".indd")));
            } catch (_) {
                app.documents[0].save(File(folder+'/'+logos[i].name.replace(/\.\w+$/,"####.indd")));
            }
        }
    }
    

     

    Peter

     
    |
    Mark as:
  • Currently Being Moderated
    May 27, 2013 4:21 AM   in reply to fluttergirl86

    http://www.adobe.com/designcenter-archive/indesign/articles/indcs2at_d atamerge.html

     

    You can use Data Merge to import images into predefined areas.

     
    |
    Mark as:
  • Currently Being Moderated
    May 28, 2013 1:58 AM   in reply to fluttergirl86

    Fluttergir186

    1- First copy the script text above and paste it on (Windows) Adobe Extendscript and save it (for example: AutomateLogoReplacement.jsx) and add it to indesign scripts panel.

    note: also you can paste script text on Notepad and save it as: .jsx

     

    2- Draw a frame and replace default name <rectangle> with logo

    3.jpg

    1.jpg
    3- Make a new folder ( on a location you choose) copy all your logos and paste it to this folder.

     

    4- Double click on script name on the indesign scripts panel and choose a folder that contain the logos.

    4.jpg

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points