1

我正在尝试做相当于选择一些文本并单击Small Caps按钮的操作。以下是一些尝试:

app.activeDocument.textFrames[0].texts.appliedCharacterStyle.capitalization = Capitalization.SMALL_CAPS;

不起作用:“对根样式的请求无效”

var myCharacterStyle = new CharacterStyle();
myCharacterStyle.capitalization = Capitalization.SMALL_CAPS;
app.activeDocument.textFrames[0].texts[0].applyCharacterStyle(myCharacterStyle);

不起作用:“方法'applyCharacterStyle'的参数'using'的值无效。预期的CharacterStyle,但什么也没收到。”

我该怎么做?

4

2 回答 2

2

如果要更改默认的“[无]”,则需要先创建新的字符样式

//First create a new character style
var newCharacterStyle = document.characterStyles.add(text.appliedCharacterStyle);
if(text.appliedCharacterStyle!=null){
    newCharacterStyle.basedOn = text.appliedCharacterStyle;
}   
text.appliedCharacterStyle = newCharacterStyle;

//then apply capitalization
newCharacterStyle.capitalization = Capitalization.SMALL_CAPS;
于 2012-05-25T09:40:19.320 回答
0

我发现了一种在文本上设置Small Caps的错误方法:

app.activeDocument.textFrames[0].texts[0].appliedParagraphStyle.capitalization = Capitalization.SMALL_CAPS;

我说buggy是因为不是只在想要的文本上设置Small Caps ,而是整个段落的样式。之所以如此,是因为我使用appliedParagraphStyle而不是appliedCharacterStyle. 但是当我使用时appliedCharacterStyle,我得到“根样式的无效请求”。因为电流CharacterStyle是那个特殊的,叫做“[None]”。"[None]" CharacterStyle 不允许写入其applyCharacterStyle 属性,也不允许重复(使用duplicate())。

于 2012-05-24T17:43:33.847 回答