[GastForen Programmierung/Entwicklung JavaScript Farbscript Indesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Farbscript Indesign

jensche
Beiträge gesamt: 78

14. Mär 2022, 11:51
Beitrag # 1 von 3
Bewertung:
(5643 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen

Für ein Projekt möchte ich ein Indesign Script machen welches folgendes können soll:

– RGB Wert von Farbfeld "XY" ändern
– Farbfeld "XDFG" hinzufügen falls nicht schon vorhanden
– Farbname "FDGD" löschen

Wahrscheindlich ein simpler Code, jedoch quäle ich mich damit ab.

Code
//Farbwerte der Farbfelder ändern//  
var thisDocument = app.activeDocument;
if(thisDocument.colors.item("Straw")
thisDocument.colors.colorValue({name:"Straw", model:ColorModel.rgb, colorValue:[100, 0, 0, 0]});
}

//Farben hinzufügen wenn nicht schon vorhanden//
var thisDocument = app.activeDocument;
if(thisDocument.colors.item("Farbe XY") == null) {
thisDocument.colors.add({name:"Farbe XY", model:ColorModel.rgb, colorValue:[100, 20, 0, 0]});
}

//Farben mit Farbwert XY löschen//
var thisDocument = app.activeDocument;
if(thisDocument.colorValue [100, 20, 0, 0] {
delete
}

X

Farbscript Indesign

jensche
Beiträge gesamt: 78

14. Mär 2022, 12:12
Beitrag # 2 von 3
Beitrag ID: #582940
Bewertung:
(5628 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich bin schon etwas weiter.

Code
function myColorAdd(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;
}

//Farbwerte der Farbfelder ändern//
myColorName(app.activeDocument, "Color XY", ColorModel.PROCESS [25,66,55]);
}

//Farben hinzufügen wenn nicht schon vorhanden//
if(thisDocument.colors.item("Farbe XY") == null) {
myColorAdd(app.activeDocument, "Farbe XY", ColorModel.PROCESS, [33,66,99]);
}



als Antwort auf: [#582939]

Farbscript Indesign

jensche
Beiträge gesamt: 78

14. Mär 2022, 16:15
Beitrag # 3 von 3
Beitrag ID: #582946
Bewertung:
(5556 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
so... ich habs rausgefunden. Hier das Finale Skript:

Code
//Skript für Umbennenung von Farben und Bereinigung// 
//Aktives Dokument//

var doc = app.activeDocument
var allcolors = doc.swatches

//Funktionen//
//Farbfeld auf neue Farbe definieren//
function changeExiting(colorToCheck,newvalue){//colorToCheck = str,newvalue = array of 3 or 4 numbers (RGB or CMYK). if RGB then num range is 0-255, 0-100 for CMYK
for( i = 0; i < allcolors.length; i++){
if(allcolors[i].name==colorToCheck){
allcolors[i].colorValue=newvalue

}
}
}
//Neue Farbe hinzufügen wenn nicht vorhanden//
function addNewColor(colorToCheck,newvalue){//colorToCheck = str,newvalue = array of 3 or 4 numbers (RGB or CMYK). if RGB then num range is 0-255, 0-100 for CMYK
for( i = 0; i < allcolors.length; i++){
if(allcolors[i].name==colorToCheck){
return alert('Color '+colorToCheck+' is exist')

}
}
if(newvalue.length==4){
doc.colors.add({colorValue:newvalue,name:colorToCheck,space:ColorSpace.CMYK})
}
else{
doc.colors.add({colorValue:newvalue,name:colorToCheck,space:ColorSpace.RGB})

}
}
//Farbe löschen mit bestimmtem Namen//
function deleteSwatch(colorToCheck){//colorToCheck = str
for( i = 0; i < allcolors.length; i++){
if(allcolors[i].name==colorToCheck){
allcolors[i].remove()
break

}
}
}

//Farbfeld neu definieren//
changeExiting ('Color XY',[10,20,35]);

//Neues Farbfeld hinzufügen//
addNewColor('Color YX5DD',[15,60,80])
addNewColor('Color XDD',[11,145,60])
addNewColor('Color CYfD',[10,40,82,20])

//Farbfeld löschen//
deleteSwatch('Color C')



als Antwort auf: [#582940]