尝试弄清楚如何在InDesign CC中向页面上的所有选定项目添加投影。这就是我所拥有的,但它说“Undefined不是一个对象。”
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;
答案 0 :(得分:2)
然后就是这样(虽然我更喜欢检查项目是否具有应用的对象样式,如果是这样的话,请编辑对象样式本身。然后我会查看项目是否已经处理了样式以获得性能。但要简要说明:
var allPageItems = doc.allPageItems;
var n = allPageItems.length;
while ( n-- ) process ( allPageItems[n] );
function process ( item) {
if ( !item.properties.transparencySettings ) return;
item.transparencySettings.dropShadowSettings.mode = ShadowMode.NONE;
}

答案 1 :(得分:1)
通过使用" select all",返回的对象是一个经典数组,其中dropShadowSettings不是有效属性,因此是错误。 我建议应用对象样式,而不是直接设置道具。这样,您就可以手动编辑样式并查看以前正在更新的相关对象。
var doc = app.activeDocument;
var os = doc.objectStyles.itemByName ( "myDropShadow" );
!os.isValid && os = doc.objectStyles.add ( {
name:"myDropShadow",
transparencySettings:{
dropShadowSettings:{
mode:ShadowMode.drop,
angle : .0083,
xOffset : 0.08,
yOffset : 0.08,
size : 0.6,
}
}
});
app.activeDocument.pageItems.everyItem().appliedObjectStyle = os;

顺便说一句,最好不要使用复制/粘贴/选择等UI命令,因为它们非常耗时,而且dom本身也有替代方案。