You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:45:17