1

我正在尝试编写包含一些文本的文本框架的创建脚本,以便文本框架自动扩展到必要的高度。这有效,但与 UI 不同。我想要实现的是文本框架中的段落四面都有15mm的边距。但这仅适用于左右缩进,不适用于段落前后的间距。当您运行下面的脚本时,您会看到文本框架的高度与其中的段落完全一致。但是,当您现在打开“对象样式”对话框时,单击“文本框架常规选项”和“预览”,您会看到应用了“插入间距”预设,而在脚本执行期间它们并未应用。所以问题是:

// 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);
4

1 回答 1

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);
于 2013-10-04T14:36:40.603 回答