使用Javascript向InDesign中的所有选定项目添加阴影

使用Javascript向InDesign中的所有选定项目添加阴影,javascript,adobe-indesign,Javascript,Adobe Indesign,正在尝试了解如何在InDesign CC中为页面上的所有选定项目添加阴影。这是我所拥有的,但它说“未定义的不是对象。” 通过使用“全选”,返回的对象是一个经典数组,其中dropShadowSettings不是有效属性,因此会出现错误。 我建议应用对象样式,而不是直接设置道具。这样,您就可以手动编辑样式,并看到以前的相关对象正在更新 var doc=app.activeDocument; var os=doc.objectStyles.itemByName(“myDropShadow”); !o

正在尝试了解如何在InDesign CC中为页面上的所有选定项目添加阴影。这是我所拥有的,但它说“未定义的不是对象。”

通过使用“全选”,返回的对象是一个经典数组,其中dropShadowSettings不是有效属性,因此会出现错误。 我建议应用对象样式,而不是直接设置道具。这样,您就可以手动编辑样式,并看到以前的相关对象正在更新

var doc=app.activeDocument;
var os=doc.objectStyles.itemByName(“myDropShadow”);
!os.isValid&&os=doc.objectStyles.add({
名称:“myDropShadow”,
透明度设置:{
DropShadow设置:{
模式:ShadowMode.drop,
角度:.0083,
xOffset:0.08,
偏移量:0.08,
尺寸:0.6,
}
}
});
app.activeDocument.pageItems.everyItem().appliedObjectStyle=os通过使用“全选”,返回的对象是一个经典数组,其中dropShadowSettings不是有效的属性,因此出现错误。
我建议应用对象样式,而不是直接设置道具。这样,您就可以手动编辑样式,并看到以前的相关对象正在更新

var doc=app.activeDocument;
var os=doc.objectStyles.itemByName(“myDropShadow”);
!os.isValid&&os=doc.objectStyles.add({
名称:“myDropShadow”,
透明度设置:{
DropShadow设置:{
模式:ShadowMode.drop,
角度:.0083,
xOffset:0.08,
偏移量:0.08,
尺寸:0.6,
}
}
});
app.activeDocument.pageItems.everyItem().appliedObjectStyle=os然后就是这样(虽然我更喜欢检查项目是否有应用的对象样式,如果有,请编辑对象样式本身。然后我会查看项目是否有已处理的样式以获得性能。但简而言之:

var allPageItems=doc.allPageItems;
var n=allPageItems.length;
而(n--)进程(allPageItems[n]);
功能流程(项目){
如果(!item.properties.transparencySettings)返回;
item.transparencySettings.dropShadowSettings.mode=ShadowMode.NONE;
}
然后就是这样(虽然我更喜欢检查项目是否有应用的对象样式,如果有,请编辑对象样式本身。然后我会查看项目是否有已处理的样式以获得性能。但简单地说:

var allPageItems=doc.allPageItems;
var n=allPageItems.length;
而(n--)进程(allPageItems[n]);
功能流程(项目){
如果(!item.properties.transparencySettings)返回;
item.transparencySettings.dropShadowSettings.mode=ShadowMode.NONE;

}
谢谢。这确实有效,但它会去除所有对象的所有其他效果和样式。例如文本和框填充。我最初的目标是在触发此脚本时删除文档中的所有阴影。我想我可以通过查看是否可以使用脚本编辑阴影。此脚本的目标是将文档从m从一个打印目的到另一个打印目的。例如:像一个全彩文档到一个单色较小的文档。所以我要做的就是在不影响其他效果和样式的情况下删除所有对象的阴影。再次感谢!谢谢。这确实有效,但它会删除所有对象的所有其他效果和样式。例如文本和框填充。我的原稿最终目标是在触发此脚本时删除文档中的所有阴影。我想我可以通过查看是否可以使用脚本编辑阴影来做到这一点。此脚本的目标是将文档从一种打印用途更改为另一种打印用途。例如:将全彩文档更改为单色较小的文档。因此,我所要做的就是删除t他在不影响其他效果和样式的情况下从所有对象上投射阴影。再次感谢!据我所知,我同意;但这确实起到了作用。它确实回答了此处发布的问题。再次感谢!!据我所知,我同意;但这起到了作用。它确实回答了此处发布的问题。再次感谢!!
myDS = app.select(SelectAll.ALL);
myDS.dropShadowSettings.mode = ShadowMode.drop;
myDS.dropShadowSettings.angle = .0083;
myDS.dropShadowSettings.xOffset = 0.08;
myDS.dropShadowSettings.yOffset = 0.08;
myDS.dropShadowSettings.size = 0.6;