Skip to main content
palericksson
Participating Frequently
May 22, 2015
Answered

Is there a way to batch rename artboards in Illustrator CC?

  • May 22, 2015
  • 3 replies
  • 27752 views

Is there a way to batch rename artboards in Illustrator CC?

I have 20 different artbords that i want to rename with a specific name and number!

/Pål

This topic has been closed for replies.
Correct answer Qwertyfly___

does this do what you are after?

modified a script I wrote to do the same with layers.

//===========================================================

//

//          Rename Artboards

//

//===========================================================

//

//          Version 0.1

//          25/5/2015

//          Qwertyfly

//

//===========================================================

var doc = app.activeDocument, abs = [];

for(var i = 0; i < doc.artboards.length; i++){

    abs.push(doc.artboards.name);

}

var w = new Window('dialog',"Artboard Name Editor");

var list = w.add('group');

list.orientation = "Column";

var head = list.add('group');

head.alignment = "left";

var p = head.add('statictext', undefined, "Prefix");

var n = head.add('statictext', [0,0,165,20], "         Artboard Name");

var s = head.add('statictext', undefined, "Suffix");

var  pre = [], nam = [], suf = [];

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

    newLine(i,"item" + i);

}

function newLine(num,item){

    item = list.add('group');

    item.alignment = "left";

    pre[num] = item.add('checkbox', undefined,"");

    nam[num] = item.add('edittext', [0,0,200,20], abs);

    nam[num].characters = 50;

    suf[num] = item.add('checkbox', undefined, "");

}

var sep1 = list.add("panel");

sep1.alignment = ["fill","fill"];

sep1.minimumSize.height = sep1.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Prefix to add to checked artboards");

var prefix = list.add('edittext', [0,0,250,20], "");

var sep2 = list.add("panel");

sep2.alignment = ["fill","fill"];

sep2.minimumSize.height = sep2.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Suffix to add to checked artboards");

var suffix = list.add('edittext', [0,0,250,20], "");

var sep3 = list.add("panel");

sep3.alignment = ["fill","fill"];

sep3.minimumSize.height = sep3.maximumSize.height = 2;

var ButtonGroup = w.add("group");

  ButtonGroup.margins = [0,-10,0,-8];

  ButtonGroup.alignment = "right";

  var go = ButtonGroup.add ("button", undefined, "OK");

  var stop = ButtonGroup.add ("button", undefined, "Cancel");

  stop.onClick = function(){

  w.close();

  }

    go.onClick = function(){

        var validatePre = false, validateSuf = false, validateMessage = "";

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

            if(pre.value == true && prefix.text == ""){validatePre = true}

            if(suf.value == true && suffix.text == ""){validateSuf = true}

        }

        if(validatePre == true){validateMessage = "Artboards have been marked for Prefix, but no Prefix entered\n"}

        if(validateSuf == true){validateMessage = validateMessage + "Artboards have been marked for Suffix, but no Suffix entered"}

        if(validateMessage != ""){

            alert(validateMessage);

        }else{

            w.close();

            goTime();

        }

  }

w.show();

function goTime(){

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

        var na = nam.text;

        var pr = "";

        var su = "";

        if(pre.value == true){pr = prefix.text + " - "}

        if(suf.value == true){su = " - " + suffix.text}

        doc.artboards.name = pr + na + su;

    }

}

3 replies

Inspiring
January 10, 2024

@Sergey Osokin Thanks for the work you do! Would it be easy to add a function to the script to find and replace only on certain artboards? Or to select artboards in the Artboards panel as an input to the script? That would make it super useful for me. 

Sergey Osokin
Inspiring
January 10, 2024

I will consider your request. Unfortunately, selected artboards in the Artboards panel are not available for scripting.

Participant
January 7, 2023
var doc = app.activeDocument;

for(var i = 0; i < doc.artboards.length; i++){
   doc.artboards[i].name="INSERT-NAME-HERE"+"-"+(i+1);
   }

 

Place whatever name you want your artboards to have inside the quotes of "INSERT-NAME-HERE". 

Place the above code in a .js file, and run from "File->Scripts->Other Script" in Adobe Illustrator. 

Qwertyfly___
Qwertyfly___Correct answer
Legend
May 25, 2015

does this do what you are after?

modified a script I wrote to do the same with layers.

//===========================================================

//

//          Rename Artboards

//

//===========================================================

//

//          Version 0.1

//          25/5/2015

//          Qwertyfly

//

//===========================================================

var doc = app.activeDocument, abs = [];

for(var i = 0; i < doc.artboards.length; i++){

    abs.push(doc.artboards.name);

}

var w = new Window('dialog',"Artboard Name Editor");

var list = w.add('group');

list.orientation = "Column";

var head = list.add('group');

head.alignment = "left";

var p = head.add('statictext', undefined, "Prefix");

var n = head.add('statictext', [0,0,165,20], "         Artboard Name");

var s = head.add('statictext', undefined, "Suffix");

var  pre = [], nam = [], suf = [];

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

    newLine(i,"item" + i);

}

function newLine(num,item){

    item = list.add('group');

    item.alignment = "left";

    pre[num] = item.add('checkbox', undefined,"");

    nam[num] = item.add('edittext', [0,0,200,20], abs);

    nam[num].characters = 50;

    suf[num] = item.add('checkbox', undefined, "");

}

var sep1 = list.add("panel");

sep1.alignment = ["fill","fill"];

sep1.minimumSize.height = sep1.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Prefix to add to checked artboards");

var prefix = list.add('edittext', [0,0,250,20], "");

var sep2 = list.add("panel");

sep2.alignment = ["fill","fill"];

sep2.minimumSize.height = sep2.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Suffix to add to checked artboards");

var suffix = list.add('edittext', [0,0,250,20], "");

var sep3 = list.add("panel");

sep3.alignment = ["fill","fill"];

sep3.minimumSize.height = sep3.maximumSize.height = 2;

var ButtonGroup = w.add("group");

  ButtonGroup.margins = [0,-10,0,-8];

  ButtonGroup.alignment = "right";

  var go = ButtonGroup.add ("button", undefined, "OK");

  var stop = ButtonGroup.add ("button", undefined, "Cancel");

  stop.onClick = function(){

  w.close();

  }

    go.onClick = function(){

        var validatePre = false, validateSuf = false, validateMessage = "";

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

            if(pre.value == true && prefix.text == ""){validatePre = true}

            if(suf.value == true && suffix.text == ""){validateSuf = true}

        }

        if(validatePre == true){validateMessage = "Artboards have been marked for Prefix, but no Prefix entered\n"}

        if(validateSuf == true){validateMessage = validateMessage + "Artboards have been marked for Suffix, but no Suffix entered"}

        if(validateMessage != ""){

            alert(validateMessage);

        }else{

            w.close();

            goTime();

        }

  }

w.show();

function goTime(){

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

        var na = nam.text;

        var pr = "";

        var su = "";

        if(pre.value == true){pr = prefix.text + " - "}

        if(suf.value == true){su = " - " + suffix.text}

        doc.artboards.name = pr + na + su;

    }

}

Participant
November 8, 2017

Hi Qwertyfly

I'm super new with scripting and don’t know where to begin

I have multiple Illustrator artboards that are already named something like this:

icon_DataRawInfo_blue

icon_Devices_blue


I was wondering if there is a script that can find and replace a certain text in this case “blue” to “black” or whatever text it need to be found and replaced.

Any info on this is greatly appreciated. Also how do you install the script.

Thank you!


ben



Sergey Osokin
Inspiring
November 5, 2020

can you fix this scrip it give me an error in illustrator 2020


@Rafael5D3E try this. I fixed some bugs in the variables

// Artboard-Name-Editor.jsx
// 
// Versions:
// 0.1 Initial version by Qwertyfly (27/5/2015)
// 0.2 added scrollbar (needed full rework) by Qwertyfly (7/6/2015)
// 0.2.1 by Qwertyfly (10/6/2015)
//  - bug fix, forgot to initiate the "pre" "nam" & "suf" arrays.
//  - added user var for Seperators
// 0.2.2 (05/11/2020) by Sergey Osokin
//  - fixed arrays names and indexes
//  - fixed scrollbar
//  - added isEmpty() function to prevent entering text string has only whitespace


//  User set variable
var SCRIPT_NAME = "Artboard Name Editor",
    ROWS = 10, // Number of visible rows.
    PREFIX_SEPARATOR = " - ", // Seperator between Prefix and name
    SUFFIX_SEPARATOR = " - ", // Seperator between name and Suffix
    AB_LIST_HEIGHT = 220; // Artboards names list height;

var doc = app.activeDocument,
    abs = [],
    item = [],
    pre = [],
    nam = [],
    suf = [];

for (var i = 0; i < doc.artboards.length; i++) {
  abs.push([false, doc.artboards[i].name, false, i]);
}

var w = new Window('dialog', SCRIPT_NAME);
var list = w.add('group');
list.orientation = "Column";
var head = list.add('group');
head.alignment = "left";
var p = head.add('statictext', undefined, "Prefix");
var n = head.add('statictext', [0, 0, 195, 20], "         Artboard Name");
var s = head.add('statictext', undefined, "Suffix");

var scrollwin = list.add('group');
scrollwin.alignChildren = "fill";
var items = scrollwin.add("panel");


if (abs.length < ROWS) {
  for (var i = 0; i < abs.length; i++) {
    item = items.add('group');
    newLine(i, item);
  }
} else {
  items.maximumSize.height = AB_LIST_HEIGHT;
  var grItems = items.add('group');
  grItems.orientation = "column";
  grItems.alignment = "left";
  grItems.margins = [0, 5, 0, 0];
  grItems.maximumSize.height = abs.length * 100;
  
  var sbar = scrollwin.add("scrollbar");
  sbar.stepdelta = parseInt(ROWS / 2);
  sbar.preferredSize.width = 20;
  sbar.maximumSize.height = items.maximumSize.height;
  
  for (var i = 0; i < abs.length; i++) {
    item = grItems.add('group');
    item.alignment = "left";
    newLine(i, item);
  }

  // Trick from https://community.adobe.com/t5/indesign/scrollable-panel-group-in-scriptui/td-p/10967644?page=1
  sbar.onChanging = function() {
    grItems.location.y = -1 * this.value;
  }

  w.onShow = function() {
    sbar.maxvalue = grItems.size.height - items.size.height + 20;
  };
}

function newLine(num, item) {
  pre[num] = item.add('checkbox', undefined, "");
  pre[num].value = abs[num][0];
  pre[num].label = abs[num][3];
  pre[num].onClick = function() {
    abs[this.label][0] = !abs[this.label][0];
  }
  nam[num] = item.add('edittext', [0, 0, 200, 20]);
  nam[num].characters = 50;
  nam[num].text = abs[num][1];
  nam[num].label = abs[num][3];
  nam[num].onChange = function() {
    if (isEmpty(this.text)) {
      this.text = abs[num][1];
    } else {
      abs[this.label][1] = this.text;
    }
  }
  suf[num] = item.add('checkbox', undefined, "");
  suf[num].value = abs[num][2];
  suf[num].label = abs[num][3];
  suf[num].onClick = function() {
    abs[this.label][2] = !abs[this.label][2];
  }
}

var sep1 = list.add("panel");
sep1.alignment = ["fill", "fill"];
sep1.minimumSize.height = sep1.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Prefix to add to checked artboards");
var prefix = list.add('edittext', [0, 0, 280, 20], "");

var sep2 = list.add("panel");
sep2.alignment = ["fill", "fill"];
sep2.minimumSize.height = sep2.maximumSize.height = 2;

var prefixt = list.add('statictext', undefined, "Suffix to add to checked artboards");
var suffix = list.add('edittext', [0, 0, 280, 20], "");

var sep3 = list.add("panel");
sep3.alignment = ["fill", "fill"];
sep3.minimumSize.height = sep3.maximumSize.height = 2;

var ButtonGroup = w.add("group");
ButtonGroup.margins = [0, -10, 0, -8];
ButtonGroup.alignment = "right";
var go = ButtonGroup.add("button", undefined, "OK");
var stop = ButtonGroup.add("button", undefined, "Cancel");

stop.onClick = function() {
  w.close();
}

go.onClick = function() {
  var validatePre = false,
      validateSuf = false,
      validateMessage = "";   

  for (var i = 0; i < abs.length; i++) {
    if (abs[i][0] == true && isEmpty(prefix.text)) {
      validatePre = true;
    }
    if (abs[i][2] == true && isEmpty(suffix.text)) {
      validateSuf = true;
    }
  }
  if (validatePre == true) {
    validateMessage = "Artboards have been marked for Prefix, but no Prefix entered\n"
  }
  if (validateSuf == true) {
    validateMessage = validateMessage + "Artboards have been marked for Suffix, but no Suffix entered"
  }
  if (validateMessage != "") {
    alert(validateMessage);
  } else {
    w.close();
    goTime();
  }
}

w.show();

function goTime() {
  for (var i = 0; i < abs.length; i++) {
    var name = abs[i][1];
    var pr = "";
    var su = "";
    if (abs[i][0] == true) {
      pr = prefix.text + "" + PREFIX_SEPARATOR
    }
    if (abs[i][2] == true) {
      su = SUFFIX_SEPARATOR + "" + suffix.text
    }
    doc.artboards[i].name = pr + name + su;
  }
}

function isEmpty(str) {
  return str.replace(/\s/g, '').length == 0;
}