好的,假设我选择了这个textFrame:



我要应用此:



要获得此预期结果:



使用此代码,没问题:

var doc = app.activeDocument;
var target = doc.selection[0];
target.fit(FitOptions.frameToContent);


但是,一旦我设置了内容,它就会出错。即使内容与原样相同。

var doc = app.activeDocument;
var target = doc.selection[0];
target.contents = "0209 - Lorem ipsum dolor sit amet consectetur adipiscing elit nam finibus ut justo at fermentum maecenas tincidun libero at aliquet finibus libero sem semper massa.";
target.fit(FitOptions.frameToContent);


现在我得到1条大线!:



这是错误,还是我需要触发更新方法或其他内容?

最佳答案

设置内容后添加target.recompose()。撰写(即,将文本分成几行)通常在后台进行; ID可能没有两次调用之间的时间。

从文档中尚不清楚何时需要显式调用recompose,但是根据经验,您可以假定通过文本contents属性进行交互始终需要它。 InDesign本机InDesign文本的contents可以与Javascript字符串对象相互转换,从而失去所有“本机”格式,包括任何及所有段落组成。

我只是用我可信赖的旧CS4尝试过,即使没有确定,它也可以在不使用recompose的情况下工作。 InDesign可能只是有“时间”在后台执行此操作,而没有其他任务在运行。因此,强制执行仍然是一个好主意。

09-17 17:23
查看更多