1

我正在寻找 indesign 脚本,但我没有找到任何关于这个主题的信息,我认为这很重要。所以这是我的问题:

  • 如何使用 javascript 在 Indesign CS6 中查找文本框?
  • 我可以通过包含特定段落样式的文本框进行查询吗?
  • 我可以在我的文本框(位于母版页中)上设置某种名称以在 javascript 中获取它?
4

2 回答 2

3

好的,经过一些研究,我发现您可以通过打开“脚本标签”,选择您想要的对象并将标签名称写入“脚本标签”面板来为对象设置标签。您不必单击确定或什么都不单击,它会自动保存该对象的标签。

完成此操作后,您可以检查对象的“.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;
}
于 2013-03-07T11:16:06.343 回答
0

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是段落样式对象所以获取样式对象并通过这个属性找到。

于 2018-02-02T05:26:31.120 回答