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,如果是,则移除覆盖。
我想从主项目中删除覆盖,但只是对象样式 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,如果是,则移除覆盖。