我有大约200个SVG文件,我需要将strokecolor更改为灰色,并将所有行的笔画宽度更改为.2pt。
我想编写相当于在界面中执行的操作 - “选择全部”,然后手动输入.2磅的笔画宽度。
现在,我的脚本正在将所有颜色更改为灰色(正常工作),并将一些行更改为笔触宽度.2pt。
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
var doc = app.activeDocument;
for ( i = 0; i <doc.pathItems.length; i++ ) {
pathArt = doc.pathItems[i];
pathArt.strokeWidth = .2;
pathArt.strokeColor = makeColor(153,153,153);
pathArt.filled = false;
}
function makeColor(r,g,b){
var c = new RGBColor();
c.red = r;
c.green = g;
c.blue = b;
return c;
}
也许我没有正确地通过脚本选择所有对象? 正如我在上面所做的那样选择路径项来实现相当于CTRL-A的正确方法,然后手动进行一些操作吗?
非常感谢您的时间!
答案 0 :(得分:0)
从AI CS3开始,当没有描述路径时,.strokeColor
属性适用,而.strokeWidth
属性不适用。
添加代码pathArt.Stroked = True;
以解决您的问题
另请注意,您不会迭代CompoundPathItems
答案 1 :(得分:0)
这是完整的脚本,它会要求您选择文件夹。因此,选择包含200个SVG文件的文件夹。此脚本将处理所选文件夹中的所有SVG文件,并将笔触颜色更改为灰色并更改其宽度。
var folder = Folder.selectDialog();
if (folder) {
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
var color = makeColor(153, 153, 153);
var files = folder.getFiles("*.svg");
for (var j = 0; j < files.length; j++) {
app.open(files[j]);
var doc = app.activeDocument;
for (i = 0; i < doc.pathItems.length; i++) {
pathArt = doc.pathItems[i];
pathArt.stroked = true;
pathArt.strokeWidth = .2;
pathArt.strokeColor = color;
pathArt.filled = false;
}
doc.close(SaveOptions.SAVECHANGES);
doc = null;
}
}
function makeColor(r, g, b) {
var c = new RGBColor();
c.red = r;
c.green = g;
c.blue = b;
return c;
}
如果您想处理锁定和隐藏的项目,也可以更改锁定和隐藏项目的脚本。