如何在InDesign JS脚本中定义颜色变量?
解决InDesign脚本表格边框颜色未识别问题
你遇到的问题是直接使用Red作为颜色值,脚本无法识别——因为Red不是预定义变量,必须通过InDesign的API获取或创建对应的颜色对象。以下是两种可行方案:
方案1:使用文档中已有的"Red"色板
如果你的InDesign文档里已经创建了名为"Red"的色板,直接通过色板名称获取颜色对象即可:
// 先获取文档中的Red色板 var redColor = app.documents[0].colors.itemByName("Red"); // 给所有表格单元格设置边框颜色(注意去掉重复的赋值语句) app.documents[0].stories.everyItem().tables.everyItem().cells.everyItem().properties = { topEdgeStrokeColor: redColor, bottomEdgeStrokeColor: redColor, leftEdgeStrokeColor: redColor, rightEdgeStrokeColor: redColor };
方案2:动态创建红色色板(如果文档中没有现成的)
如果文档里没有预设的红色色板,可以先创建一个RGB红色的色板,再使用:
// 动态创建RGB红色色板 var redColor = app.documents[0].colors.add(); redColor.name = "Red"; redColor.colorSpace = ColorSpace.RGB; redColor.properties = { colorValue: [255, 0, 0] // RGB红的数值 }; // 设置表格单元格边框颜色 app.documents[0].stories.everyItem().tables.everyItem().cells.everyItem().properties = { topEdgeStrokeColor: redColor, bottomEdgeStrokeColor: redColor, leftEdgeStrokeColor: redColor, rightEdgeStrokeColor: redColor };
另外注意你原代码里重复写了一遍app.documents[0].stories.everyItem().tables.everyItem().cells.everyItem().properties =,这属于冗余代码,运行时会覆盖前一次赋值,需要删除其中重复的一行。
内容的提问来源于stack exchange,提问作者user3153575
相关产品推荐
相关产品推荐

