🐟️ 功能,按当前文件的色盘中专色,建立专色色标

源码 AI脚本绘制专色色标.jsx

// AI脚本绘制专色色标.jsx  By 捞鱼吧  bbs.lyvba.com

// 获取当前文档
var doc = app.activeDocument;

// 当前图层
var currentLayer = doc.activeLayer;

// 创建 白颜色
var mm = 25.4 / 72;  // pt 和 mm 转换系数
var myFont = textFonts.getByName("MicrosoftYaHei");
var white = new CMYKColor();

// 准备绘制的位置
var xOffset = 0;
var yOffset = 0;
var blockWidth = 120;
var blockHeight = 30;
var spacing = 10;

// 排除的注册色
var excludedColorName = "[套版色]"; // 可根据需要修改

// 遍历文档颜色盘
for (var i = 0; i < doc.swatches.length; i++) {
    var swatch = doc.swatches[i];

    // 检查是否是专色且不是注册色
    if (swatch.color.typename === "SpotColor" && swatch.name !== excludedColorName) {
        // 创建一个矩形
        var rect = currentLayer.pathItems.rectangle(yOffset, xOffset, blockWidth, blockHeight);
        // 填充专色
        rect.fillColor = swatch.color;

        // 添加文本
        var txt = currentLayer.textFrames.add();
        txt.contents = swatch.name; // 使用专色名称
        txt.top = yOffset - 2; // 设置文本位置
        txt.left = xOffset + 3; // 与色块对齐
        txt.textRange.fillColor = white; // 设置文本填充白 颜色
        txt.textRange.characterAttributes.textFont  = myFont;

        // 更新 xOffset 以便绘制下一个色块
        xOffset += blockWidth + spacing;

        // 如果超出画布宽度,则换行
        if (xOffset > doc.width - blockWidth) {
            xOffset = 0;
            yOffset -= (blockHeight + spacing + 15); // 额外留出空间给文本
        }
    }
}

// 提示用户完成
// alert("专色色块及其色号已绘制完成。");