Here's a quick & dirty script I wrote for you. In fact, this is a part of another complex script. It has a list of swatches: name and CMYK values pairs. If a swatch doesn't exist, it will be created with the values in the list. If it does already exist, but the values are not the same, they will be corrected. Use the list as a template and enter your values. /* Copyright 2022, Kasyan Servetsky
April 11, 2022
Written by Kasyan Servetsky
http://www.kasyan.ho.ua
e-mail: askoldich@yahoo.com */
//======================================================================================
var scriptName = "Check Swatches",
debugMode = false, // for debugging only
doc;
app.doScript(PreCheck, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "\"" + scriptName + "\" Script");
//===================================== FUNCTIONS ======================================
function Main() {
try {
// List of swatches: name, [ C, M, Y, K ]
var swatches = [
["Administration", [0, 60, 40, 10]],
["Audit, Governance & Compliance", [0, 40, 90, 10]],
["Behavioral", [40, 50, 20, 0]],
["Engineering & Maintenance", [30, 35, 70, 10]],
["Facility Management", [35, 15, 25, 35]],
["Finance & Accounting", [60, 0, 85, 15]],
["Financial Services", [70, 0, 70, 15]],
["Healthcare", [55, 20, 70, 10]],
["Human Resources", [0, 80, 80, 15]],
["Information Technology", [50, 35, 0, 10]],
["LEORON Mint/Tirkiz", [70, 20, 35, 0]],
["LEORON Petroleum", [67, 50, 42, 15]],
["Management & Leadership", [15, 80, 40, 10]],
["Procurement & Contracts", [70, 0, 30, 15]],
["Projects", [40, 20, 55, 10]],
["Quality Management", [80, 50, 0, 15]],
["Risk Management", [15, 15, 90, 15]],
["Sales & Marketing", [0, 90, 50, 15]],
["Supply Chain & Operations", [60, 15, 20, 20]]
];
CheckSwatches(swatches);
}
catch(err) {
alert("Something went wrong: " + err.message + ", line: " + err.line, scriptName, true);
}
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
function CheckSwatches(swatches) {
var swatch, color;
for (var i = 0; i < swatches.length; i++) {
swatch = doc.swatches.itemByName(swatches[i][0]);
if (debugMode) $.writeln(i + " - " + swatches[i][0] + " | " + swatches[i][0]);
if (swatch == null) {
color = doc.colors.add({name : swatches[i][0], model : ColorModel.PROCESS, space : ColorSpace.CMYK, colorValue : swatches[i][1]});
if (debugMode) $.writeln("added color " + color.name);
}
else if (swatch.colorValue.join() != swatches[i][1].join()) {
if (debugMode) $.writeln("changing colorValue - " + swatch.colorValue + " => " + swatches[i][1]);
swatch.colorValue = swatches[i][1];
}
}
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
function PreCheck() {
if (app.documents.length == 0) ErrorExit("Please open a document and try again.", true);
doc = app.documents[0];
if (doc.converted) ErrorExit("The current document has been modified by being converted from older version of InDesign. Please save the document and try again.", true);
if (!doc.saved) ErrorExit("The current document has not been saved since it was created. Please save the document and try again.", true);
Main();
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
function ErrorExit(error, icon) {
alert(error, scriptName, icon);
exit();
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------
... View more