2013-10-04 2 views
1

텍스트 프레임이 자동으로 필요한 높이로 확장되도록 텍스트 내부에 텍스트 프레임을 만드는 스크립트를 작성하려고합니다. 이 방법은 작동하지만 UI와는 다른 방식입니다. 내가 성취하고자하는 것은 텍스트 프레임의 문단이 모든면에서 15mm의 여백을 가지고 있다는 것입니다. 그러나 이것은 단락 앞뒤의 간격이 아니라 왼쪽 및 오른쪽 들여 쓰기에서만 작동합니다. 아래 스크립트를 실행하면 텍스트 프레임의 단락 높이가 정확하게 표시됩니다. 그러나 이제 "개체 스타일"대화 상자를 열고 "텍스트 프레임 일반 옵션"을 클릭하고 "미리보기"에서 "삽입 간격"사전 설정이 적용된 반면 스크립트 실행 중에 적용되지는 않습니다. 질문은 : 스크립팅을 사용하면 모든면에 내부 여백이있는 텍스트 프레임을 만들고 여백을 포함한 텍스트 프레임 크기를 내용에 어떻게 맞출 수 있습니까? .Indesign CS5 : 스크립트로 단락을 텍스트 프레임에 맞추는 방법

첫째는 ObjectStyle가에 걷어차 인 세트의 순서를 활성화 할 필요가있는 enableTextFrameGeneralOptions 속성을 가지고 있다는 것입니다

:

// close all your unsaved documents before you run this script 
for (var i = 0; i < app.documents.length; i++) { 
    app.documents[i].close(SaveOptions.NO); 
} 

var myDocument = app.documents.add(true); 
var currentPage = myDocument.spreads.lastItem().pages.lastItem(); 

myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.MILLIMETERS; 
myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.MILLIMETERS; 

myColorWHITE = myDocument.colors.add({name:"WHITE",model:ColorModel.process,colorValue:[0,0,0,0]}); 

paragraphStyleBox = myDocument.paragraphStyles.add({name:"box"}); 
with (paragraphStyleBox) { 
    spaceAfter = "15mm"; 
    spaceBefore= "15mm"; 
    leftIndent = "15mm"; 
    rightIndent = "15mm"; 
} 

var objectStyleBox = myDocument.objectStyles.add({name:"Box"}); 
with (objectStyleBox) { 
    appliedParagraphStyle = paragraphStyleBox; 
    fillTransparencySettings.blendingSettings.opacity = 80; 
    fillColor = myColorWHITE; 
    textFramePreferences.insetSpacing = ["15mm","15mm","15mm","15mm"]; 
//  autoFit = true; 
} 

var myObject = currentPage.textFrames.add(); 
myObject.applyObjectStyle(objectStyleBox); 
myObject.geometricBounds = ["25mm","25mm","50mm","120mm"]; 


myObject.contents = "Milicae is. Ortemnem mium host poteatius lis. At perentilinc tum non diem et quons interet; nonfex milicta demque num. Eci publiae tes re porestem que movena, nos culessi etilissidiem utem. Publis. Fultorum mo vid con verdientime cervivis cri, sena, publictam quit, ur, quemena tamquist grac ret; habena, siderfe conlocr evitio adhui cortuidemeis consum andam aciam ma, fuis ore aucterei ius manum pubis. Fuliceristam octu vignonsulium cum sent, us C. Mus entebatque et videt; horeo, conem avoltor enatus. Scierox mus ommovero, quam inatropotius occi prae et; nos ad me prore cotam teribut audeatquam in demus, abus bonsidem cus sentem dum mo et qua publis? Forit intum inu vis, etem mei senatilis iam eoribut octum idi, sendam aus elut viventeat. Opiorbissi inatur aci fautem ommorac tatuus crem ia? Hosulium perbemurbit." 
    + "Il tatum abem sulius pubis perfir la re ius vivir unirmis, popos, oribuntim hocchi, quam veresultuam invo, que facien hocciendet videt? Ficae ad pror quem iam nu virid imus abus num nihil hocupplintem acchicivis, senditua quam etore queremur aderibus iaet? Ximodit rudemus addum nononsus et; horementi, se con Etra, que atum ta, se teniris essoltustia erum tem fuem defatus clem peris horicaedeesi ina, utum facientem atu quodiora te in Itam qua re me ori, nes conihi, supplica publicae conc or aurbist abefex satam es nihi, pratienatum auciste beffren deriti serrionficia et vigit quitiac turnihil vidium foraequam in pori peciviu es! Ximus bonveraes imoena, mus niquid popubis ad nonsu modius, cus iam con in tea occidici ipieris ulicute nonclud emuressi ina, crem, neris,"; 

myObject.paragraphs[0].applyParagraphStyle(paragraphStyleBox,true); 
myObject.fit(FitOptions.FRAME_TO_CONTENT); 

답변

1

문제가 될 것 같다 여기 두 가지가 있습니다 둘째, 개체 스타일과 동일한 간격으로 단락 스타일을 적용하기 때문에 간격을 두 배로 늘릴 수 있습니다. 따라서 단락 스타일을 제거하거나 여백 간격을 해제해야합니다.

// close all your unsaved documents before you run this script 
for (var i = 0; i < app.documents.length; i++) { 
    app.documents[i].close(SaveOptions.NO); 
} 

var myDocument = app.documents.add(true); 
var currentPage = myDocument.spreads.lastItem().pages.lastItem(); 

myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.MILLIMETERS; 
myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.MILLIMETERS; 

myColorWHITE = myDocument.colors.add({name:"WHITE",model:ColorModel.process,colorValue:[0,0,0,0]}); 

var objectStyleBox = myDocument.objectStyles.add({name:"Box"}); 
with (objectStyleBox) { 
    fillTransparencySettings.blendingSettings.opacity = 80; 
    fillColor = myColorWHITE; 
    textFramePreferences.insetSpacing = ["15mm","15mm","15mm","15mm"]; 
    enableTextFrameGeneralOptions = true; // Enables general options and inset spacing 
    autoFit = true; 
} 

var myObject = currentPage.textFrames.add(); 
myObject.applyObjectStyle(objectStyleBox); 
myObject.geometricBounds = ["25mm","25mm","50mm","120mm"]; 


myObject.contents = "Milicae is. Ortemnem mium host poteatius lis. At perentilinc tum non diem et quons interet; nonfex milicta demque num. Eci publiae tes re porestem que movena, nos culessi etilissidiem utem. Publis. Fultorum mo vid con verdientime cervivis cri, sena, publictam quit, ur, quemena tamquist grac ret; habena, siderfe conlocr evitio adhui cortuidemeis consum andam aciam ma, fuis ore aucterei ius manum pubis. Fuliceristam octu vignonsulium cum sent, us C. Mus entebatque et videt; horeo, conem avoltor enatus. Scierox mus ommovero, quam inatropotius occi prae et; nos ad me prore cotam teribut audeatquam in demus, abus bonsidem cus sentem dum mo et qua publis? Forit intum inu vis, etem mei senatilis iam eoribut octum idi, sendam aus elut viventeat. Opiorbissi inatur aci fautem ommorac tatuus crem ia? Hosulium perbemurbit." 
+ "Il tatum abem sulius pubis perfir la re ius vivir unirmis, popos, oribuntim hocchi, quam veresultuam invo, que facien hocciendet videt? Ficae ad pror quem iam nu virid imus abus num nihil hocupplintem acchicivis, senditua quam etore queremur aderibus iaet? Ximodit rudemus addum nononsus et; horementi, se con Etra, que atum ta, se teniris essoltustia erum tem fuem defatus clem peris horicaedeesi ina, utum facientem atu quodiora te in Itam qua re me ori, nes conihi, supplica publicae conc or aurbist abefex satam es nihi, pratienatum auciste beffren deriti serrionficia et vigit quitiac turnihil vidium foraequam in pori peciviu es! Ximus bonveraes imoena, mus niquid popubis ad nonsu modius, cus iam con in tea occidici ipieris ulicute nonclud emuressi ina, crem, neris,"; 

myObject.fit(FitOptions.FRAME_TO_CONTENT); 
+0

대단히 감사합니다. 귀하의 솔루션이 작동합니다. 단락 간격 설정을 완전히 제거하고 텍스트 프레임 삽입 간격 만 유지하면 스크립트가 원하는대로 작동합니다. 아직도, 나는 원래 스크립트의 단락 간격과 들여 쓰기를 유지한다면 * 작동하지 않는 이유가 궁금합니다. 후자의 경우 삽입 및 단락 간격 설정이 더 큰 여백을 추가하지만 자동 맞춤이 더 이상 작동하지 않습니다. 이유를 아시겠습니까? –

+0

단락 간격은 자동 맞춤에 전혀 영향을주지 않으며 삽입 간격 만 영향을줍니다. 둘 다 유지할 수 있어야하지만 단락 간격은 단락 사이의 간격에 대해서만 자동 맞춤을 사용하는 경우 중요하지 않습니다. 당신이 놓쳤던 가장 큰 일은 기본적으로'enableTextFrameGeneralOptions'가'false'로 설정되어 있기 때문에 인셋 간격이 가능하도록 오버라이드하고'true'로 설정해야한다는 것입니다. –

관련 문제