-
Notifications
You must be signed in to change notification settings - Fork 30
Colors And Swatches
fabiantheblind edited this page May 4, 2016
·
3 revisions
###colors and swatches
There's two types of colors in InDesign: named colors, and unnamed colors. Named colors show in the swatches panel, and unnamed colors don't.
There's no way to apply a unnamed color directly via scripting.
Harbs. Adobe Forums
That means you always have to create a swatch.
/**
* Lets play with colors
* to use colors you NEED to create a swatch
*/
main();
function main (){
// make a document
var pw = 300;
var ph = 30;
var doc = app.documents.add({
documentPreferences:{
pageHeight:ph,
pageWidth:pw
}
});
// inspect the existing swatches
var random_num = parseInt(Math.random()*doc.swatches.length);
var random_swatch = doc.swatches[random_num];
alert("the swatch with the number "+
random_num +" is always\n[" + random_swatch.name + "]");
// now lets create some colors
var cols = new Array();
var num_of_colors = 42*5;
// lets do it randomly
for(var j = 0; j < num_of_colors; j++){
var r = Math.random() * 10;
var g = Math.random() * 255;
var b = Math.random() * 255;
// important a color needs a unique name
// color_add function is from indisnip.wordpress.com
// go down to inspect what she does
// push the swatches into an array
cols.push(color_add (doc, "random rgb color"+j, ColorModel.PROCESS, [r,g,b]));
}; // end of loop
// make some colors by "hand"
cols.push(color_add (doc, "cmyk color", ColorModel.PROCESS, [100,50,0,0]));
cols.push(color_add (doc, "rgb color", ColorModel.PROCESS, [10,0,100]));
cols.push(color_add (doc, "hex color", ColorModel.PROCESS, ["ffffff"]));
// this is how you create colors without that nice function
var color_by_hand =doc.colors.add();
color_by_hand.properties = {
name:"color by hand",
model:ColorModel.PROCESS,
space:ColorSpace.RGB,
colorValue:[100,10,100]};
// now we apply them
var pg = doc.pages.item(0); // get the page
var step = pw / cols.length; // calc the number of steps we have. one by color
// coordinates
var x1 = 0;
var y1 = 0;
var x2 = step;
var y2 = ph;
// loop the colors
for(var i = 0; i < cols.length;i++){
// add a rectangle
var rect = pg.rectangles.add({geometricBounds:[y1,x1,y2,x2]});
rect.fillColor = cols[i];
rect.strokeWeight = 0;
x1 = x2;
x2 = x2 + step;
}; // end of loop
}; // end of function main
// found on http://bit.ly/h5EobK indisnip.wordpress.com ->
// how to apply:
// add CMYK color
//myColorAdd(app.activeDocument, "My Custom Color", ColorModel.PROCESS, [80,50,30,10]);
// add RGB color
//myColorAdd(app.activeDocument, "My Custom Color", ColorModel.PROCESS, [33,66,99]);
// add HEX color
//myColorAdd(app.activeDocument, "My Custom Color", ColorModel.PROCESS, "ABCDEF");
// add color directly
// add CMYK color to document
// and asign it to selected object
//app.selection[0].fillColor = myColorAdd(app.activeDocument, "My Custom Color", ColorModel.PROCESS, [80,50,30,10]);
function color_add(myDocument, myColorName, myColorModel, myColorValue){
if(myColorValue instanceof Array == false){
myColorValue = [(parseInt(myColorValue, 16) >> 16 ) & 0xff, (parseInt(myColorValue, 16) >> 8 ) & 0xff, parseInt(myColorValue, 16 ) & 0xff ];
myColorSpace = ColorSpace.RGB;
}else{
if(myColorValue.length == 3)
myColorSpace = ColorSpace.RGB;
else
myColorSpace = ColorSpace.CMYK;
}
try{
myColor = myDocument.colors.item(myColorName);
myName = myColor.name;
}
catch (myError){
myColor = myDocument.colors.add();
myColor.properties = {name:myColorName, model:myColorModel, space:myColorSpace ,colorValue:myColorValue};
}
return myColor;
}
This wiki is maintained by:
fabiantheblind
Thanks to:
- JohnDarnell for fixing lots of typos.
- jsp for fixing lots of typos.
- ltfschoen for fixing typos.
- wridgers for adding more links.
Thanks to the students from the seminar for asking all those questions and making me start this wiki.
- adinaradke
- AnitaMei
- ce0311
- coerv
- felixharle
- FerdinandP
- Flave
- marche
- monkian
- natael
- OliverMatelowski
- PDXIII
- praktischend
- schlompf
- skaim
You are awesome.
- Arrays
- Classes
- Comments
- Conditionals
- Functions
- Inspect Properties
- Loops
- Objects
- Output And Interaction
- Recursive Functions
- Inspect Properties
- Variables And Operations
- Extended JavaScript Guide
- Bridge Talk
- Create And Read Files
- ExtendScript Toolkit
- File
- Folder
- Includes JSX
- Object Watch
- Read In JSON From File And DONT Eval
- Storing Data In A Target Engine
- Target an application
- XML
- app
- Colorbrewer
- Colors And Swatches
- Delay And View
- Dialogs
- Documents
- Duplicate And Transform
- Event AfterSave
- Export IDML
- ExtendScript in InDesign Scripting DOM
- Fonts
- GeometricBounds and Coordinates
- Get named pageItems
- Graphic Lines
- Groups
- HSL Color Wheel
- Images
- Includes
- InsertionPoints
- Layers
- Line Feeds And Carrige Returns
- Masterspreads
- Matrix
- Objectstyles
- Outlines Groups Alignment
- Pages And Margins
- Pathfinder
- Placeholder Text
- Rectangles Ovals Polygons
- RulerOrigin
- Select words at insertionPoint
- Simple Find And Change Grep with FC Query
- Simple Find And Change Grep
- Simple Find And Change Text
- Spiro
- Styles
- Text Analysis ID FC
- Text Analysis
- Text Find Locations
- Text
- Transformation Matricies
- TransparencySettings
- XML creation and import