创建插图程序脚本以输出样本并列出它们

时间:2017-08-11 11:14:22

标签: javascript jsx adobe-illustrator

你不得不原谅我,当涉及到javascript时,我很可怕。

我正在制作一个Illustrator脚本来创建一个充满颜色的小册子,我的工作正常,此刻有点乱,但它确实有效。

我现在需要创建额外的页面,其中包含Pantone颜色的列表以及它们所在的页面。

例如,本书从第2页开始,将有7种颜色,然后再转到第3页,另外还有7种颜色,依此类推,直到没有颜色为止。

所以我需要做的是编辑以下脚本,说明7个项目后页面数量增加1。

这是剧本的一部分:

main();
function main()
{
var doc = app.activeDocument;
var selectedSwatches = doc.swatches.getSelected();


if (selectedSwatches.length > 0)
{
    var text = 'var spots = new Array(\n';


    for (var i = 0; i < selectedSwatches.length; i++)
    {
        var swatch = selectedSwatches[i]
        var color = swatch.color;


        // Spot
        if (color.typename == "SpotColor") {
          for(var j = 1; j < 8; j++){
            text += '"' + color.spot.name + "page" + i+ '", ' + "\n";
          }

            color = color.spot.color;
        }

    }
    var textend = ');';
    saveTxt(text + textend);
}
else {
    alert("No Swatches Selected.");
}
}


function saveTxt(txt)
{
var name = app.activeDocument.name.replace(/\.[^\.]+$/, '');
var path = (app.activeDocument.path != "") ? app.activeDocument.path : "~";


var saveFile = new File(path + "/" + name + "-SPOT.txt");


if(saveFile.exists)
    saveFile.remove();


saveFile.encoding = "UTF8";
saveFile.open("e", "TEXT");
saveFile.writeln(txt);
saveFile.close();


alert("Saved to File:\n" + saveFile.fullName)
}

这是导致我发现问题的部分:

// Spot
if (color.typename == "SpotColor") {
  for(var j = 1; j < 8; j++){
    text += '"' + color.spot.name + "page" + i+ '", ' + "\n";
  }

  color = color.spot.color;

}

就目前而言,首先它从第0页开始,它应该从第2页开始。

每种颜色也输出7行,每7行输出1种颜色。

我已经附上了输出的屏幕截图。enter image description here

1 个答案:

答案 0 :(得分:0)

以下是您的问题的代码

main();

function main() {
    var doc = app.activeDocument;
    var selectedSwatches = doc.swatches.getSelected();
    var pageNumber = 2;
    var count = 0;
    if (selectedSwatches.length > 0) {
        var text = 'var spots = new Array(\n';
        for (var i = 0; i < selectedSwatches.length; i++) {
            var swatch = selectedSwatches[i]
            var color = swatch.color;
            // Spot
            if (color.typename == "SpotColor") {
                count++;
                text += '"' + color.spot.name + " page" + pageNumber + '", ' + "\n";
                color = color.spot.color;
                if (count % 7 == 0)
                    pageNumber++;
            }

        }
        var textend = ');';
        saveTxt(text + textend);
    } else {
        alert("No Swatches Selected.");
    }
}


function saveTxt(txt) {
    var name = app.activeDocument.name.replace(/\.[^\.]+$/, '');
    var path = (app.activeDocument.path != "") ? app.activeDocument.path : "~";
    var saveFile = new File(path + "/" + name + "-SPOT.txt");
    if (saveFile.exists)
        saveFile.remove();
    saveFile.encoding = "UTF8";
    saveFile.open("e", "TEXT");
    saveFile.writeln(txt);
    saveFile.close();


    alert("Saved to File:\n" + saveFile.fullName)
}

此代码将从第2页开始,只要第2页显示7种不同的颜色,它将移至第3页以显示另外7种颜色。希望我的回答能帮到你。享受.. :))