Quantcast
Channel: Adobe Community : Popular Discussions - Illustrator Scripting
Viewing all 12845 articles
Browse latest View live

All Group to Ungroup Script


How to divide all textFrames in one-character-per-textFrame?

$
0
0

Hello:

 

How to divide all textFrames in one-character-per-textFrame?

 

Example: the textFrame "Letters" will be divided in 7 textFrames: "L", "e", "t", "t", "e", "r", "s".

 

Help, please.

Illustrator Find And Replace

$
0
0

Hi there,

 

Can anybody tell me if it's possible to JavaScript Illustrators Find And Replace text function?

 

I know it's possible in InDesign but I can't find anything for Illustrator.

 

Many Thanks,

Nik

Bring currently selected item(s) into view

$
0
0

I want to write a script that brings the currently selected item into view (screen center) and zooms into it. If multiple items are selected, the zoom stays as far away as necessary, to keep all items in the view.

 

How can i do that?

How to use data set variables to create art boards for each data set, with a different data set assigned to each art board like InDesigns data merge feature.

$
0
0

Hi Guys,

 

How to use data set variables to create art boards for each data set, with different a data set assigned to each art board like Adobe InDesigns data merge feature.

 

Basically what I do is.

 

If i have 3 variables and one art board, I would then set that first board to data set record-1 make sure it is locked to that board. I would then drag the board (Which is copied with contents which would then change automatically once i switch the data set) to the right and then set it to data set record-2 and just repeat till 3.

 

 

In this short GIF i know the data is not setting and it is because I am just showing as an example. The topic is in regards to generating art boards according to the first art board which basically contains the template and then setting each variable data to it.

 

Example.gif

 

Thanks for any help!

Split Text into Layers

$
0
0

I was wondering if anyone is aware of a script that is able to do the same as this photoshop one http://www.agasyanc.ru/text-splitter, I would use that one in photoshop but its not working in CS6.

 

I  was hoping to find a script that will seperate the text into layers  ready for export to After Effects to be used in Kinetic Typography  pieces

 

thank you

Render swatch Legend Script

$
0
0

I was wondering if someone could help me edit this Script Written by John Wundes. Its almost perfect for what i need, but my problem is the text box inside of the swatch when it is rendered is to small. Ideally i'd like it to be 90% the size of the actual swatch. I've copied and pasted it here if someone could help i'd greatly appreciate it. I tried asking John on his Blog a few times but i haven't gotten any response. Also i'd like to delete the CMYK values that it returns with just the PMS name only.

 

Render Swatch Legend v1.1 -- CS, CS2, CS3, CS4, CS5

//>=--------------------------------------

//

//  This script will generate a legend of rectangles for every swatch in the main swatches palette.

//  You can configure spacing and value display by configuring the variables at the top

//  of the script.

//   update: v1.1 now tests color brightness and renders a white label if the color is dark.

//>=--------------------------------------

// JS code (c) copyright: John Wundes ( john@wundes.com ) www.wundes.com

// copyright full text here:  http://www.wundes.com/js4ai/copyright.txt

//

//////////////////////////////////////////////////////////////////

    doc = activeDocument,

    swatches = doc.swatches,

    cols = 10,

    displayAs = "CMYKColor",  //or "RGBColor"

    rectRef=null,

    textRectRef=null,

    textRef=null,

    rgbColor=null,

    w=150;

    h=150,

    h_pad = 100,

    v_pad = 100,

    t_h_pad = 100,

    t_v_pad = 100,

    x=null,

    y=null,

    black = new GrayColor(),

    white = new GrayColor()

    ;

 

    black.gray = 100;

    white.gray = 0;

 

activeDocument.layers[0].locked= false;

var newGroup = doc.groupItems.add();

newGroup.name = "NewGroup";

newGroup.move( doc, ElementPlacement.PLACEATBEGINNING );

 

for(var c=2,len=swatches.length;c<len;c++)

{

        var swatchGroup = doc.groupItems.add();

        swatchGroup.name = swatches[c].name;

      

        x= (w+h_pad)*(c% cols);

        y=(h+v_pad)*(Math.floor((c+.01)/cols))*-1 ;

        rectRef = doc.pathItems.rectangle(y,x, w,h);

        rgbColor = swatches[c].color;

        rectRef.fillColor = rgbColor;

        textRectRef =  doc.pathItems.rectangle(y- t_v_pad,x+ t_h_pad, w-(2*t_h_pad),h-(2*t_v_pad));

        textRef = doc.textFrames.areaText(textRectRef);

        textRef.contents = swatches[c].name+ "\r" + getColorValues(swatches[c].color) ;

        textRef.textRange.fillColor = is_dark(swatches[c].color)? white : black;

        //

        rectRef.move( swatchGroup, ElementPlacement.PLACEATBEGINNING );    

        textRef.move( swatchGroup, ElementPlacement.PLACEATBEGINNING );

        swatchGroup.move( newGroup, ElementPlacement.PLACEATEND );

}

 

function getColorValues(color)

{

        if(color.typename)

        {

            switch(color.typename)

            {

                case "CMYKColor":

                    if(displayAs == "CMYKColor"){

                        return ([Math.floor(color.cyan),Math.floor(color.magenta),Math.floor(color.yellow),Math.floor(co lor.black)]);}

                    else

                    {

                        color.typename="RGBColor";

                        return  [Math.floor(color.red),Math.floor(color.green),Math.floor(color.blue)] ;

                      

                    }

                case "RGBColor":

                  

                   if(displayAs == "CMYKColor"){

                        return rgb2cmyk(Math.floor(color.red),Math.floor(color.green),Math.floor(color.blue));

                   }else

                    {

                        return  [Math.floor(color.red),Math.floor(color.green),Math.floor(color.blue)] ;

                    }

                case "GrayColor":

                    if(displayAs == "CMYKColor"){

                        return rgb2cmyk(Math.floor(color.gray),Math.floor(color.gray),Math.floor(color.gray));

                    }else{

                        return [Math.floor(color.gray),Math.floor(color.gray),Math.floor(color.gray)];

                    }

                case "SpotColor":

                    return getColorValues(color.spot.color);

            }   

        }

    return "Non Standard Color Type";

}

function rgb2cmyk (r,g,b) {

var computedC = 0;

var computedM = 0;

var computedY = 0;

var computedK = 0;

 

//remove spaces from input RGB values, convert to int

var r = parseInt( (''+r).replace(/\s/g,''),10 );

var g = parseInt( (''+g).replace(/\s/g,''),10 );

var b = parseInt( (''+b).replace(/\s/g,''),10 );

 

if ( r==null || g==null || b==null ||

     isNaN(r) || isNaN(g)|| isNaN(b) )

{

   alert ('Please enter numeric RGB values!');

   return;

}

if (r<0 || g<0 || b<0 || r>255 || g>255 || b>255) {

   alert ('RGB values must be in the range 0 to 255.');

   return;

}

 

// BLACK

if (r==0 && g==0 && b==0) {

  computedK = 1;

  return [0,0,0,1];

}

 

computedC = 1 - (r/255);

computedM = 1 - (g/255);

computedY = 1 - (b/255);

 

var minCMY = Math.min(computedC,

              Math.min(computedM,computedY));

computedC = (computedC - minCMY) / (1 - minCMY) ;

computedM = (computedM - minCMY) / (1 - minCMY) ;

computedY = (computedY - minCMY) / (1 - minCMY) ;

computedK = minCMY;

 

return [Math.floor(computedC*100),Math.floor(computedM*100),Math.floor(computedY*100),Math.floor (computedK*100)];

}

 

function is_dark(color){

       if(color.typename)

        {

            switch(color.typename)

            {

                case "CMYKColor":

                    return (color.black>50 || (color.cyan>50 &&  color.magenta>50)) ? true : false;

                case "RGBColor":

                    return (color.red<100  && color.green<100 ) ? true : false;

                case "GrayColor":

                    return color.gray > 50 ? true : false;

                case "SpotColor":

                    return is_dark(color.spot.color);

               

                return false;

            }

        }

}

Calculer la surface d'un objet

$
0
0

Bonjour, comment faire pour calculer la surface d'un objet dans Illustrator cc 2015 ?
je possède un script conçu par Scriptomedia, qui permet de le faire mais le facteur d'échelle utilisé (ligne 11 > var ech = 30) me donne des résultats erronés.

Or, je travaille à échelle 1/150 dans les faits. Que dois-je faire ou modifier pour obtenir des résultats cohérents ? merci.


Le script ressemble à ceci :

-----------------

// surface6.js

/* Calcule la surface des traces selectionnes et effectue la somme

   en pt2 mm2 m2 et a echelle 1:1 variable ech facteur d'echelle defaut 30

   les variable ard... correspondent au nb de chiffres apres la virgule pour arrondi

   variable er ecart  en + et - pour lequel les mm2 sont arrondis au nombre entier

   affichage sur le plan de travail dans un nouveau calque*/

//INIT------------------------------------

var coulText = macmykColor(25,100,100,25);

var police ="Arial-ItalicMT";

var corps = 12;

var ech = 30;

var ardmm = 2;

var ardm = 6;

var ardp = 3;

var er = 0.1;

//----------------------------------------

if (app.documents.length > 0) {

   var docRef = app.activeDocument;

       docRef.rulerOrigin = [0,0];

   var erreur = 0.05; // % erreur pour le test de surface du cercle

   var Version  = parseInt(version);

   if (parseInt(version) >= 12) {

   var point = UnitValue (1,"Pt");

   var mm = UnitValue (1,"mm");//alert(mm)

   var m = UnitValue (1,"m");

   var pouce = UnitValue (1,"in");

   } else {

      var mm = uniteMesure("mm");//alert(mm)

      var mm1 = uniteMesure("mm")*ech;//alert(mm)

      var pouce = uniteMesure("in");

      var pouce1 = uniteMesure("in")*ech;

      var point = uniteMesure("pt");

      var point1 = uniteMesure("pt")*ech;

      var m = mm*1000;

      var m1 = m*ech;

      }

   var iCount = textFonts.length;

   var numPolice = detectPolice (police,iCount);

   var p; //compteurs

   var aire, smm, spouce, total = 0;

   var liste = initliste();

   var propObjets = new Array();

   var pathes = new Array();

   var selectedItems = selection;

   extractPathes(selectedItems,pathes);

   var endIndex = pathes.length;

   var ObjetName, aire, rayonNul;

       if (endIndex > 0) {

       nouveauLayer = docRef.layers.add();

       nouveauLayer.name = nomLayer("Aire");

         for (p = 0; p < endIndex; p++) {

         rayonNul = false;

           if (propObjet(pathes[p],propObjets)) { //cercle

           aire = propObjets[2][1];

           }

           else aire = propObjets[2][0];

         pointText1(propObjets[0][0],propObjets[0][1],"p "+p,corps,numPolice,coulText);

         Sm   = getArrondi(aire/Math.pow(point*m,2),ardm);

         Sm1  = getArrondi(Sm*ech,ardm);

         Smm  = proche(getArrondi(aire/Math.pow(point*mm,2),ardmm),er);

         Smm1 = proche(getArrondi(Smm*ech,ardmm),er*ech);

         Spouce = getArrondi(aire/Math.pow(point*pouce,2),ardp);

           if (rayonNul) ObjetName = "point isole";

           else {

           ObjetName = pathes[p].name;

           if (ObjetName != "")  ObjetName = ObjetName;

           else ObjetName = "Sans nom";

           }

         liste[0] += p+"\tSurface = "+getArrondi(aire,2)+"\r";

         liste[1] += Smm+"\r";

         liste[2] += Smm1+"\r";

         liste[3] += Sm+"\r";

         liste[4] += Sm1+"\r";

         liste[5] += ObjetName+"\r";

         total += aire;

         }

         afficheTab(20,corps*1.3*(p+6),liste);

             if (endIndex  != 1) {

             Sm   = getArrondi(total/Math.pow(point*m,2),ardm);

             Sm1  = getArrondi(Sm*ech,ardm);

             Smm  = proche(getArrondi(total/Math.pow(point*mm,2),ardmm),er);

             Smm1 = proche(getArrondi(Smm*ech,ardmm),er*ech);

             pointText1(20,corps*1.3*3,"Facteur d'Èchelle "+ech+"\rSurface totale   = "+getArrondi(total,2)+

             " pt2\t\tou "+Smm+" mm2\t\tou  "+Sm+" m2",corps,numPolice,coulText);

             pointText1(20,corps*1.3,"Surface ech 1:1 = "+getArrondi(total*ech,2)+

             " pt2\t\tou "+Smm1+" mm2\t\tou  "+Sm1+" m2",corps,numPolice,coulText);

             }

       } else alert("Au revoir, 1 selection est obligatoire","De Elleere");

} else alert("Pour l'execution de ce sript un document doit etre ouvert !","Script Alerte de Elleere !");

//---------------------------------------------

function proche(v,e)

{

var ar = Math.round(v);

if (Math.abs(v-ar) <= e) return ar;

return v;

}

function afficheTab(x,y,tab)

{

  var dec = 20, gout = 40;

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

         pointText1(x,y,tab[i],corps,numPolice,coulText);

         var geo = [docRef.pageItems[0].geometricBounds];

         x += geo[0][2]-geo[0][0]+gout;

     }

}

function initliste() {

   return ["Objet de Rang\tpt2\r\r", " mm2\r\r", " 1:1 mm2\r\r", " m2\r\r", " 1:1 m2\r\r", " de nom\r\r"];

}

function propObjet(objetSelect,Cxy)

{ //

  var p1x, p1y, p2x, p2y, surface, aire, marge;

  var largeur, hauteur, Cx, Cy;

  var geo = [objetSelect.geometricBounds];

  p1x = geo[0][0]; p1y = geo[0][1]; p2x = geo[0][2]; p2y = geo[0][3];

  largeur = p2x-p1x;

  hauteur = p1y-p2y;

  if (objetSelect.pathPoints.length <= 2) {

  surface = aire = 0;

  }

  else {

  surface = Math.abs(objetSelect.area);

  aire = Math.PI*Math.pow((largeur+hauteur)/2,2)/4;

  }

  marge = aire*erreur/100;

        if (largeur == 0 && hauteur == 0) rayonNul = true; // rayon nul, point isole

        Cx = (p1x+p2x)/2;

        Cy = (p1y+p2y)/2;

        Cxy[0] = [Cx,Cy];

        Cxy[1] = [largeur,hauteur];

        Cxy[2] = [surface,aire];

        if (surface < aire+marge && surface > aire-marge)

        { // Si l'objet au premier plan est un cercle

        return true;

        }

  return false

}

function detectPolice(chaine,iCount) {

    for (var i = 0; i < iCount; i++) {

           if (police == app.textFonts[i].name) {

           return i;

           }

    }

}

function extractPathes(s,tabs){

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

    if(s[i].typename == "PathItem" && !s[i].guides && !s[i].clipping){

      tabs.push(s[i]);

    } else if(s[i].typename == "GroupItem"){

      // Cherche les objets de types dans ce groupe, recursivement

      extractPathes(s[i].pageItems, tabs);

    } else if(s[i].typename == "CompoundPathItem"){

      // Cherche les objets de type PathItem dans ce tracÈ transparent, recursivement

      extractPathes(s[i].pathItems,tabs);

    }

  }

}

function getArrondi(nb,N)

{ //arrondi nb ‡ N chiffres aprËs la virgule

  return Math.round(Math.pow(10,N)*nb)/Math.pow(10,N);

}

function inv(chaine) // fonction recursive

{ // inverse une chaine

if (chaine.length < 2) return chaine

return inv(chaine.substring(1))+chaine.substr(0,1)

}

function macmykColor(c,m,j,k)

{ //cree une nouvelle couleur CMJN

  var cmykColor = new CMYKColor();

  cmykColor.cyan = c;

  cmykColor.magenta = m;

  cmykColor.yellow = j;

  cmykColor.black = k;

  return cmykColor;

}

function nomLayer(nomLayer)

{ // Empeche les noms identiques, retourne le nom suivi d'un indice

      var nom, tnoms = new Array(), exist = false, indice = 0;

         for (k = 0; k < docRef.layers.length; k++) {

           nom = docRef.layers[k].name;

               if (nom.indexOf(nomLayer,0)!= -1) {

               tnoms[indice] = inv(nom);

               indice++;

               }

         }

      tnoms.sort();

      indice = 1; k = 0; nbExist = tnoms.length;

         while ((!exist || k < nbExist) && nbExist != 0) {

            if (parseInt(tnoms[k]) == indice || k > nbExist-1) {

            k = 0;

            indice ++;

            }

            else {

            k++;

            exist = true

            }

         }

      return nomLayer+" "+indice;

}

function pointText1(x,y,text,corps,font,maCouleur)

{// Cree un element de bloc de texte de point

    var pointText = docRef.textFrames.add();

    pointText.contents =text;

    pointText.spacing = 0;

    pointText.position = [x,y];

    if (font != undefined)

    pointText.textRange.characterAttributes.textFont = app.textFonts[font];

    pointText.textRange.characterAttributes.fillColor = maCouleur;

    pointText.textRange.characterAttributes.size = corps;

}

function uniteMesure(monUnite) { // pour la version  CS 11

var uniteMesure = new Array();

uniteMesure[0] = ["cm","in","mm","pc","pt","Q","px"];

uniteMesure[1] = [28.34645,72,2.834645,12,1,0,709,1];

  for (var i = 0; i < uniteMesure[0].length; i++)

   if (uniteMesure[0][i] == monUnite) {

    unite = uniteMesure[1][i];

    continue;

   }

   return unite;

}


Installing Scripts in latest Illustrator CC release (V 22.0.1)

$
0
0

Hi all,

 

I have been trying to find the location for installing scripts so that they appear directly under File > Scripts (instead of having to navigate to them via File > Scripts > Other Scripts). However, i can't find a folder for them.

 

In AI CC 2017 the folder was (on Windows) "C:\Program Files\Adobe\Adobe Illustrator CC 2017\Presets\de_DE\Skripten"

There seems to be no similar folder in the CC 2018 install. I tried "C:\Program Files\Adobe\Adobe Illustrator CC 2018\Support Files\Contents\Windows\Scripts"

and also "C:\Program Files\Adobe\Adobe Illustrator CC 2018\Scripting"

But scripts placed in either of these folders do not show up under File > Scripts, even after restarting Illustrator.

 

I couldn't find any official documentation regarding installing scripts in AI CC 2018. Does anyone have an idea where scripts go in the new release?

Thanks in advance!

Script for randomly replacing symbols

$
0
0

Hi!

 

I'm looking for a script that will allow you to select some objects or symbols in your AI-file and then select some of your symbols from the symbols-library in your file and then randomly replace the original objects/symbols with the symbols selected. I have found a few scripts that does basically this but with random replacement of selected colours, transparency or angles but I need one for randomly replacing symbols.

 

Can someone help?

Illustrator Scripting Panel

$
0
0

Just thought I'd share an extension I've been tinkering with:

 

GitHub - majman/adobe-scripts-panel: Scripting Panel for Adobe Illustrator

 

It's a pretty simple panel that allows you to try snippets of code in the editor, list and run saved scripts from your local files, or even load and run scripts from the web.

 

Hope somebody finds it helpful. Feel free to fork the repo and send pull requests.

 

-Marshall

Script to Rename Artboards with Layer Names

$
0
0

I'm looking to create a script to batch rename a number of artboards.

 

- I have 100 named layers.

- I have 100 artboards.

- I would like to rename the artboards to match the layer names.

- The layers are organized in the same descending orderas the artboards (ignoring the actual artboard names*).

- The topmost artboard (1 in the list) would be renamed "newspaper", the second artboard would be renamed "typewriter", the third artboard would be renamed "books", etc.

 

*in the example below the artboard named "Artboard 7" is actually the 6th artboard in list.

LayerNames-To-Artboards.png

 

Any help would be wonderful.

Split Text into Layers

$
0
0

I was wondering if anyone is aware of a script that is able to do the same as this photoshop one http://www.agasyanc.ru/text-splitter, I would use that one in photoshop but its not working in CS6.

 

I  was hoping to find a script that will seperate the text into layers  ready for export to After Effects to be used in Kinetic Typography  pieces

 

thank you

Reading text from another open document tab/window and placing a grouped object in the current document for Adobe Illustrator

$
0
0

Hi,

 

So I would as the title suggest read information from another open document/tab

 

So if i have art boards with constant similar names it does a close match to an object and if found select copy it and paste on the art board with that name.

 

I hope this GIF makes sense of what I would like to accomplish. If you cannot see what is happening just right click and open image in new tab

 

 

 

Reading from another tab.gif

 

Thank you!

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

$
0
0

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


Is there a way to colorize selected mix objects?

$
0
0

I have managed to create a script that will select a PageItem by name and Release the Transparency Mask. But I am having trouble colorizing the selected items. Below is what I have to work with. Been working on this for a week with no breakthrough. What am I missing?

 

A: Placed Link File

B: Text Item, Path Item, or Compound Path

 

#target illustrator


var idoc = app.activeDocument


spotColorGeneral (100, 100, 100, 100, 'Color1')
spotColorGeneral (0, 97, 20, 0, 'Color2')
spotColorGeneral (63, 0, 100, 0, 'Color3')
spotColorGeneral (87, 53, 0, 0, 'Color4')
spotColorGeneral (6, 0, 97, 0, 'Color5')
spotColorGeneral (52, 0, 13, 0, 'Color6')
spotColorGeneral (50, 100, 1, 0, 'Color7')
spotColorGeneral (0, 50, 1, 0, 'Color8')
spotColorGeneral (90, 33, 99, 27, 'Color9')
spotColorGeneral (0, 99, 98, 0, 'Color10')




idPlaceholder("id:Color12", 'Color10');




function idPlaceholder(monkey,wrench){
    function getPartialNamedItems(nameStr){        var doc = app.activeDocument, thisItem, arr = [];                for(var i=0; i<doc.pageItems.length; i++){            thisItem = doc.pageItems[i];            $.writeln (thisItem.name)                        if(thisItem.name.match(nameStr)){                thisItem.selected = true                $.writeln (thisItem.selected)                arr.push(thisItem);                }
//////////////////////////////////////////////////////////////////////////////////Do Something            app.doScript ('Release Mask', 'PV Actions')            colorSwapper(wrench)                                    }                          return arr;        }        var allItems = getPartialNamedItems (monkey);    //alert(allItems.length);    }


//////////////////////////////////////////////////////////////////////////////////Color Swapper


function colorSwapper(rhino){
        for (var i = 0; i < idoc.pageItems.length; i++){          plotSet = idoc.pageItems[i];          plotSet.filled = true;          plotSet.stroked = true;          //plotSet.strokeWidth = 2;          //plotSet.strokeOverprint = true;          plotSet.strokeColor = idoc.swatches.getByName(rhino) .color;          plotSet.fillColor = idoc.swatches.getByName(rhino) .color;         }      app.redraw();    }


//////////////////////////////////////////////////////////////////////////////////Spot Color General


function spotColorGeneral(c,m,y,k,kulerName){
        var swatches = idoc.swatches;        try {            var replaceColor = swatches.getByName('RGB Black').color;            }      catch (err){            var replaceColor = idoc.spots.add();            replaceColorColor = new CMYKColor();            replaceColorColor.cyan = c;            replaceColorColor.magenta = m;            replaceColorColor.yellow = y;            replaceColorColor.black = k;            replaceColor.name = kulerName;            replaceColor.color = replaceColorColor;            replaceColor.colorType = ColorModel.SPOT;            replaceColor.tint = 100;            }    }    

How to embed multiple images

$
0
0

Hello!

 

I have been tying to figure out how I could easily embed multiple linked images easily. I have some 1000 .svg  images which have about 1-7 .tif images linked in to them. I now need to get those links embedded and becouse of the amount of images I'm hoping to make an action out of it. I have a script to embed single image in .svg but haven't have luck with multiple embeddings.

 

Any ideas?

Script for placed text on linked item position

$
0
0

I now have this script installed and working. Is there a way to set the text directly below the placed item, rather than by pts? I have many objects sized differently, and would just like the text to sit below the placed item every time.

 

Thanks all for the assistance in this previous thread: https://forums.adobe.com/message/10275599#10275599

 

function test()

{

    //var Sel_itemPlaced = app.activeDocument.placedItems[0]; // if nothing is selected - use the first linked file item 

    var sel_itemPlaced = app.activeDocument.selection[0]; // be sure that a linked item (and not an embedded) is selected 

    var selPos = sel_itemPlaced.position;

    var aTF = app.activeDocument.textFrames.add();

    var fileName = sel_itemPlaced.file.name;

    var textContents = fileName.replace(/\%20/g," "); //change %20 to spaces

    textContents = textContents.replace(/\.[^\.]*$/,""); //remove extension

 

    //set the text frame position to 50pt right of left edge of the placed item

    //and 50pt below the top of the placed item

    aTF.position = [selPos[0] + 50,selPos[1] - 50];

    aTF.contents = textContents; //add the textContents to the textFrame.

    }

test();

Script: rename layers?

$
0
0

Hi, is there a quick way how to renumber or batch rename all layers in a file so they would be named in consequent numbers? Doesn't have to start from exact number, I was wondering if maybe there is some sort of script that would help me with that? Thanks Pavel

Test whether a layer with a specific name exists?

$
0
0

Is there a simple way to test whether a layer with a specific name exists?

Viewing all 12845 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>