更改内容后适合框架内容

时间:2014-11-13 12:19:03

标签: javascript scripting adobe-indesign

好的,我们说我选择了这个textFrame:

starting point

我想申请:

Fit Frame To Content

要获得此预期结果:

wanted result

使用此代码,没问题:

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

现在我得到一条大线!:

unwanted result

这是一个错误,还是我需要触发更新方法?

1 个答案:

答案 0 :(得分:1)

设置内容后添加target.recompose()。组合(即将文本分成行)通常发生在后台; ID可能没有两次函数调用之间的时间。

时,您需要明确调用recompose,但是根据经验,您可以假定通过文本进行互动contents财产总是需要它。原生InDesign文本的contents将从Javascript字符串对象转换为Javascript字符串对象,因此会松散所有本地的InDesign文本。格式化,包括任何和所有段落组合。

我只是用我可信赖的旧CS4尝试过它,并且在没有recompose的情况下也可以使用它,尽管这不是决定性的; InDesign可能已经有了时间'在后台执行,没有其他任务在运行。所以强迫它可能仍然是一个好主意。