如何解决用于文本基线的Illustrator脚本javascript
我正在尝试为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();
解决方法
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;
}
}
}
它会移动所有选定对象内所有括号的基线。
注意:此简单的实现无法处理分组对象。
,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;
}
}
此脚本的变体在所有文本框架(已分组或未分组)中均起作用。您无需选择任何内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。