好的,我们说我选择了这个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);
现在我得到一条大线!:
这是一个错误,还是我需要触发更新方法?
答案 0 :(得分:1)
设置内容后添加target.recompose()
。组合(即将文本分成行)通常发生在后台; ID可能没有两次函数调用之间的时间。
时,您需要明确调用recompose
,但是根据经验,您可以假定通过文本进行互动contents
财产总是需要它。原生InDesign文本的contents
将从Javascript字符串对象转换为Javascript字符串对象,因此会松散所有本地的InDesign文本。格式化,包括任何和所有段落组合。
我只是用我可信赖的旧CS4尝试过它,并且在没有recompose
的情况下也可以使用它,尽管这不是决定性的; InDesign可能已经有了时间'在后台执行,没有其他任务在运行。所以强迫它可能仍然是一个好主意。