javascript - 更改内容后使框架适合内容

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

现在我得到了 1 条大线!:

unwanted result

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

最佳答案

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

文档中并不清楚何时您需要显式调用recompose,但根据经验,您可以假设通过文本contents进行交互code> 属性总是需要它。原生 InDesign 文本的内容在 Javascript 字符串对象之间进行转换,从而释放所有“原生”格式,包括所有段落组合。

我刚刚用我值得信赖的旧 CS4 进行了尝试,无需 recompose 也能正常工作,尽管这还不是决定性的; InDesign 可能只是有“时间”在后台执行此操作,而没有其他任务运行。所以强制它可能仍然是一个好主意。

关于javascript - 更改内容后使框架适合内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908750/

相关文章:

Linux cronjob 不工作(执行脚本)

windows - 批处理文件输入验证 - 确保用户输入了一个整数

javascript - 如何计算 javascript 数组中某个值的实例数并声明获胜者

javascript - 使用 var 与 let 记录全局变量会产生不同的结果

javascript - 当代码是字符串时,将 Javascript ES6 重新编译为 ES5 代码

javascript - 如何将 .txt 字符串转换为 basil.js 中的变量?

javascript - Indesign脚本: Get first paragraph in textframe in each group

javascript - 图像组件上的 React-native 失败 propType

linux - 在循环中使用两个变量来访问同一文件夹中的两种不同文件类型shell脚本linux

javascript - 使用 JavaScript 脚本可靠地检测 InDesign Server 中 TextFrame 中的文本溢出?