InDesign - 删除主项目覆盖使用选择器

时间:2016-05-25 18:27:08

标签: javascript adobe-indesign

我想删除主项目的覆盖,但只是对象样式X中的项目,我写道:

var doc = app.activeDocument;
var pgs = doc.pages;
for(i = 0; i<pgs.length; i++){
    pgs[i].removeOverride(doc.objectStyles.itemByName("myObject"))
}

删除了所有覆盖。我是怎么做到的提前谢谢

2 个答案:

答案 0 :(得分:2)

在InDesign对象模型中肯定没有很好地记录这一点,但在页面上使用removeOverride()(正如您所做的那样)只是删除该页面上所有pageItem的所有覆盖。此外,removeOverride()不接受任何参数。相反,你可以像这样使用它:

var pi = app.activeDocument.pageItems;
var myOS = app.activeDocument.objectStyles.item('myObject');
for(var i = 0; i < pageItems.length; i += 1) {
  if(pi[i].appliedObjectStyle === myOS) page[i].removeOverride();
}

循环遍历所有pageItems,检查每个是否有objectStyle,如果是,则删除覆盖。

答案 1 :(得分:0)

var main = function() {
var doc = app.properties.activeDocument,
pis, pi;
if(!doc) return;
pis = doc.pageItems,
n = pis.length;
while ( n-- ) pis[n].overridden && pis[n].appliedObjectStyle.name=="myObject" && pis[n].removeOverride();
};

main();