如何使用ExtendScript以编程方式在InDesign中将文本设置为“Small Caps”?

时间:2012-05-24 17:01:59

标签: javascript adobe extendscript adobe-indesign

我正在尝试相当于选择一些文本并单击 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'的值无效。预期的CharacterStyle,但什么都没收到。”

我该怎么做?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

我找到了一种 buggy 方式在文字上设置 Small Caps

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

我说错误因为不是仅在想要的文字上设置 Small Caps ,所以整个段落都是样式化的。情况就是这样,因为我使用的是appliedParagraphStyle而不是appliedCharacterStyle。但是当我使用appliedCharacterStyle时,我得到“根样式的无效请求”。因为当前CharacterStyle是一个特殊的名为“[无]”。 “[无]”CharacterStyle不允许写入其appliedCharacterStyle属性,也不允许复制(使用duplicate())。