我想删除主项目的覆盖,但只是对象样式X中的项目,我写道:
var doc = app.activeDocument;
var pgs = doc.pages;
for(i = 0; i<pgs.length; i++){
pgs[i].removeOverride(doc.objectStyles.itemByName("myObject"))
}
删除了所有覆盖。我是怎么做到的提前谢谢
答案 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();