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

テキストにスモールキャップを設定するバグのある方法を見つけました:

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

必要なテキストだけにSmall Capsを設定する代わりに、段落全体のスタイルが設定されるため、バグがあると言います。これは、代わりに を使用しているためです。しかし、 を使用すると、「ルート スタイルに対する無効な要求」というメッセージが表示されます。流れは「【なし】」という特別なものだから。"[None]" CharacterStyle は、その appliedCharacterStyle プロパティへの書き込みを許可せず、複製も許可しません ( を使用)。appliedParagraphStyleappliedCharacterStyleappliedCharacterStyleCharacterStyleduplicate()

于 2012-05-24T17:43:33.847 に答える