2016-06-22 31 views
0

Ich habe ein Illustrator-Dokument mit verschiedenen Text- und Pfadelementen darauf. Ich möchte alle Textelemente durchlaufen und ihre Farbe und einige Attribute ändern. Dann, je nach dem Namen des Gegenstandes, möchte ich ihn mit anderen Gegenständen mit dem gleichen Namen gruppieren. Ich habe ein Skript, das fast funktioniert. Das Problem besteht darin, dass einige Elemente ausgeblendet werden oder sie inkonsistent ignoriert werden. Manchmal beeinflusst es sie, manchmal ignoriert es sie einfach. Jede Hilfe dankbar, Skript unterSchleifen durch Textelemente eine Illustrator-Seite

//Selects the graph before to scale them and turns off the pixel align so that values of 1 decimal place can be applied to strokes 
doc.selectObjectsOnActiveArtboard(); 
var sel = doc.selection; 
sel.pixelAligned=false 

var item 

var xLabels = layer.groupItems.add(); //create group for xAxis 
xLabels.name="xLabels" 
var yLabels = layer.groupItems.add(); //create group for xAxis 
yLabels.name="yLabels" 
var yTicks = layer.groupItems.add(); //create group for xAxis 
yTicks.name="yTicks" 

//Loops through ungrouped text items and set horizontal scale, spot black and tabular lining on figures 
for (var i = 0; i < layer.textFrames.length; i++) { 
    item=layer.textFrames[i]; 
    $.writeln (item) 
    item.textRange.characterAttributes.textFont = textFonts.getByName("Metric-Regular"); 
    item.textRange.characterAttributes.figureStyle=FigureStyleType.TABULAR 
    item.textRange.characterAttributes.fillColor=myBlack; 

    //move labels on xAxis into the same group 
    if (item.name=="xAxisLabel") { 
     item.moveToEnd(xLabels); 
    } 

    //move labels on yAxis into the same group 
    if (item.name=="yAxisLabel") { 
      item.moveToEnd(yLabels); 
    }; 

}; 

for (var i = 0; i < layer.pathItems.length; i++) { 
    item=layer.pathItems[i]; 

    if (item.name=="yAxisTick") { 
      item.moveToEnd(yTicks); 
    }; 
}; 

Antwort

0

Die Lösung dieses Problems ist die Schleife umzukehren. Wenn Sie die Elemente in eine Gruppe verschieben, ändert sich die Anzahl der "losen" Textelemente auf der Seite, sodass sich die Länge der Schleife effektiv ändert. Eine gute visuelle Erklärung dazu finden Sie unter https://forums.adobe.com/thread/2171307, wo ich auch die Frage

gestellt habe