今回は使用している(定義されている)スウォッチの一覧を生成するスクリプトです。スウォッチカラーを表示し、その横に名前とRGB, CMYKなどのカラー値を表示します。カラー値は内部で使用されている値を表示しているので、細かい値になっています。50%のはずが50.4%だったりといった違いも確認することができます。
大量のスウォッチが定義されている場合を想定していないので、かなり下に長くなってしまうこともあります。そのような場合には表示開始位置を指定することができます。これは
y = 800-i*15;
の800の値を大きくします。値が大きくなるほど、上の方から表示されます。もっとも、大量にある場合には新規ページを生成してページ単位でやる方がよいかもしれません。
スクリプトの使い方ですが、あらかじめ新規にドキュメントを作成してから実行してください。
sObj = activeDocument.swatches;
result = "";
for (i=0; i<sObj.length; i++)
{
sName = sObj[i].name;
sColor = sObj[i].color;
// RGBカラー
r = sColor.red;
g = sColor.green;
b = sColor.blue;
// CMYKカラー
c = sColor.cyan;
m = sColor.magenta;
y = sColor.yellow;
k = sColor.black;
// グレーカラー
gray = sColor.gray;
// その他のカラー
tint = sColor.tint;
grad = sColor.gradient;
pat = sColor.pattern;
// 描画処理
cText = "";
if (r || r || b) cText = "RGB("+r+","+g+","+b+") ";
if (c || m || y || k) cText += " CMYK("+c+","+m+","+y+","+k+")";
if (gray) cText = " GRAY("+gray+") ";
if (tint) cText = " SpotColor("+tint+") ";
if (grad) cText = " GradientColor("+grad+") ";
if (pat) cText = " PatternColor("+pat+") ";
y = 800-i*15;
textObj = activeDocument.textFrames.add();
textObj.contents = sName;
if (sName) textObj.paragraphs[0].size = 9;
textObj.translate(50,y);
textObj = activeDocument.textFrames.add();
textObj.contents = cText;
if (cText) textObj.paragraphs[0].size = 9;
textObj.translate(240,y);
pObj = activeDocument.pathItems.rectangle(y+10,30,10,10);
pObj.filled = true; // 塗りあり
pObj.fillColor = sColor; // 塗りの色をスォッチに指定
pObj = activeDocument.pathItems.add();
pObj.setEntirePath([[20,y-3],[540,y-3]]);
pObj.filled = false; // 塗りなし
pObj.stroked = true; // 線あり
pObj.strokeWidth = 0.25; // 線幅0.25ポイント
}