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

InDesign - remove master items override use selectors

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

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

并且删除了所有覆盖。我该怎么做?提前致谢

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

诚然,这在 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();
}

这将遍历所有 pageItem,检查每个 pageItem 是否具有 objectStyle,如果是,则移除覆盖。