好的,假设我选择了这个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可能只是有“时间”在后台执行此操作,而没有其他任务在运行。因此,强制执行仍然是一个好主意。