我正在寻找 indesign 脚本,但我没有找到任何关于这个主题的信息,我认为这很重要。所以这是我的问题:
- 如何使用 javascript 在 Indesign CS6 中查找文本框?
- 我可以通过包含特定段落样式的文本框进行查询吗?
- 我可以在我的文本框(位于母版页中)上设置某种名称以在 javascript 中获取它?
我正在寻找 indesign 脚本,但我没有找到任何关于这个主题的信息,我认为这很重要。所以这是我的问题:
好的,经过一些研究,我发现您可以通过打开“脚本标签”,选择您想要的对象并将标签名称写入“脚本标签”面板来为对象设置标签。您不必单击确定或什么都不单击,它会自动保存该对象的标签。
完成此操作后,您可以检查对象的“.label”属性,当您找到带有该标签的对象时,您就找到了它。多个对象可以具有相同的标签。
下面是一个带有辅助函数“selectWhere”的示例:
var document = app.documents.item(0); // active document
var allTextFrames = toArray(document.textFrames);
var textFrames = selectWhere("chapterLetter", "label", allTextFrames);
function selectWhere(value, key, array){
var i = array.length; var t; var filtered = [];
while(i--){
t = array[i];
if(t && t[key] == value){
filtered.push(t);
}
}
return filtered;
}
function toArray(objects){
var i = objects.length; var array = [];
while(i--){
array.push(objects[i]);
}
return array;
}
1)你的第一个问题的答案是: - 在这个线程中解决
2)现在你得到了文本框数组。所以你可以查询来获取文本框上的段落样式
var paraStyle1 = app.activeDocument.paragraphStyles.itemByName("styleA");
var paraStyle2 = app.activeDocument.paragraphStyles.itemByName("styleB");
if (paraStyle1.isValid && paraStyle2.isValid)
3)通过 paraStyle1.name
你可以得到样式的名称。看到parastyle1是段落样式对象所以获取样式对象并通过这个属性找到。