2013-10-05 2 views
0

어떻게해야합니까?스크립팅 Indesign : 단락 스타일 바꾸기

두 개의 단락 스타일 s1과 s2가있는 문서가 있습니다. s1 뒤에 s2가오고 그 반대도 마찬가지입니다. 이것은 사용자 인터페이스에서 잘 작동합니다. 그러나 스크립팅은 어떻게 작동합니까?

다음 코드 샘플에서 모든 텍스트는 스타일을 번갈아 사용하는 대신 단락 스타일 s1로 서식이 지정됩니다. 사용자 인터페이스를 사용하여 단락을 추가하면 단락 서식이 원하는대로 변경됩니다.

var myDocument = app.documents.add(true); 
var s1 = myDocument.paragraphStyles.add({name:'one'}); 
var s2 = myDocument.paragraphStyles.add({name:'two'}); 
with (s1) {nextStyle = s2;} 
with (s2) {nextStyle = s1;} 

var myTextFrame = myDocument.spreads.lastItem().pages.lastItem().textFrames.add(); 
myTextFrame.geometricBounds = ["20mm","20mm","100mm","100mm"]; 
myTextFrame.parentStory.insertionPoints.item(0).appliedParagraphStyle = s1; 
myTextFrame.contents = "abc\rdef\rghi\rklm\r"; 
당신은 말 (키 재산 ==> applyNextParagraphStyle : 사실)에 objectStyle를 적용하여 목표에 도달 할 수
+0

그것은 '아무튼 'for'루프를 반복적으로 사용하여 각 단락에 반복 스타일을 적용하지 않는 한 스크립팅 방식으로 작동하는 것처럼 보입니다. 적어도 ... Javascript 참조에서 "ApplyNextStyle"함수를 찾을 수 없습니다. –

+0

당신이 옳을 수도 있습니다. 그러나 주제에 관한 나의 첫번째 순진한 시험에서 그것은 일했다 (또는 그렇게 나는 믿는다)! 그러나 단 한 번. 그리고 나는 무엇이든지이 행동을 재창조 할 수 없습니다. 다음 단락 스타일은 현재 단락에 값이 설정되어있는 경우 Indesign에서 설정하지만 그럴 수는 없다고 생각했습니다. - 글쎄, 결국 당신이 제안하고 루프에서 명시 적으로 문자 스타일을 설정했다. –

답변

0

뭔가 같은 :

var 
 
\t myDocument = app.documents.add(true), 
 
\t s1 = myDocument.paragraphStyles.add({name:'one'}), 
 
\t s2 = myDocument.paragraphStyles.add({name:'two'}), 
 
\t objSt = myDocument.objectStyles.add({ 
 
\t \t \t name: 'AlternateParas', 
 
\t \t \t enableParagraphStyle: true, 
 
\t \t \t appliedParagraphStyle: s1, 
 
\t \t \t applyNextParagraphStyle: true 
 
\t \t \t }), 
 
\t myTextFrame = myDocument.pages.lastItem().textFrames.add({ 
 
\t \t contents: 'abc\rdef\rghi\rklm\r', 
 
\t \t }); 
 
with (s1) {nextStyle = s2;} 
 
with (s2) {nextStyle = s1;} 
 
myTextFrame.appliedObjectStyle = objSt;