用于文本基线的Illustrator脚本(javascript)

时间:2020-08-28 06:47:39

标签: javascript adobe adobe-illustrator

我正在尝试为Illustrator编写脚本,但是我的代码似乎无法正常工作并且对我什么也不做。 应该使“(”和“)”字符基线为3px。 寻找可以完成这项工作的人。

  function test(){
    var doc = app.activeDocument;
    var t = doc.textFrames[0], thisChar, thisSize, thisBaseline;
    for(var i=0; i<t.characters.length; i++){
      thisChar = t.characters;
      if(thisChar.contents == "(" || thisChar.contents == ")"){
        thisSize =  thisChar.characterAttributes.size;
        thisBaseline = thisChar.characterAttributes.baselineShift;
        thisChar.characterAttributes.baselineShift = 3;
      }
    };
  };
  test();

2 个答案:

答案 0 :(得分:0)

var frames = app.activeDocument.selection;

for (var j=0; j<frames.length; j++) {
    if (frames[j].typename == "TextFrame") {
        for (var i=0; i<frames[j].characters.length; i++) {
            var ch = frames[j].characters[i];
            if( ch.contents == "(" || ch.contents == ")" ) ch.baselineShift = 3;
        }
    }
}

它会移动所有选定对象内所有括号的基线。

注意:此简单的实现无法处理分组对象。

答案 1 :(得分:0)

var frames = app.activeDocument.textFrames;

for (var j=0; j<frames.length; j++) {
    for (var i=0; i<frames[j].characters.length; i++) {
        var ch = frames[j].characters[i];
        if( ch.contents == "(" || ch.contents == ")" ) ch.baselineShift = 3;
    }
}

此脚本的变体在所有文本框架(已分组或未分组)中均起作用。您无需选择任何内容。

相关问题