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

标签 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"))
}

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

最佳答案

诚然,这在 InDesign 对象模型中没有得到很好的记录,但在页面上使用 removeOverride() (正如您所做的那样)只会删除该页面上所有 pageItems 的所有覆盖。此外,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,检查每个 pageItems 是否具有 objectStyle,如果是,则删除覆盖。

关于javascript - InDesign - 删除主项目覆盖使用选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444981/

相关文章:

javascript - 如何在 InDesign 文档中查找所有对象样式覆盖

javascript - 按日期排序,然后按位置排序

javascript - #each 完成后如何执行回调?

Javascript: "Share button"在两个评论框 (jsfiddle) 上打开和关闭?

ruby - 以编程方式将数据插入 InDesign 文档

css - 我们应该使用什么语言来创建包含大量表格、颜色和图像的打印 Material ?

error-handling - 如何关闭隐藏的 InDesign 文档?

javascript - 单击行上的行选择但不单击超链接单击 jquery 数据表中的列之一?

javascript - 单击按钮时如何模糊整个网页

c# - 通过 COM 使用 C# 进行 InDesign Server 开发