2013-10-04 26 views
1

我試圖用一些文本創建文本框架的腳本,以便文本框架自動展開到必要的高度。這有效,但與用戶界面不一樣。我想要實現的是文本框中的段落在所有邊上都有15毫米的邊距。但是這隻適用於左右縮進,不適用於段落前後的空格。 當您運行下面的腳本時,您會看到文本框架正好具有該段落的高度。但是,當您現在打開「對象樣式」對話框時,單擊「文本框架常規選項」,然後在「預覽」中,您會看到「插入間距」預設已應用,但在腳本執行期間未應用預設。 所以問題是:我怎麼可以通過腳本創建一個文本框架的內部邊界,並適應文本框架的大小,包括邊緣的內容?Indesign CS5:如何通過腳本將一段文字合併到文本框架中

// 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

這裏有兩件事情,似乎是這個問題:

先來說說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]}); 

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',以便啓用插入間距。 –

相關問題