Créer une couleur dans InDesign CS5 avec des valeurs CMJN de l'entrée de l'utilisateur
-
21-12-2019 - |
Question
J'essaie de créer un script qui, dans le processus d'ouverture d'un fichier de modèle, demande à l'utilisateur un ensemble de valeurs CMJN.
L'idée est de modifier ensuite la valeur d'une couleur existante (appelée "couleur primaire") modifiant donc la couleur de chaque élément à laquelle elle est appliquée ... ou ajoutez cette nouvelle couleur et supprimez "la couleur primaire" remplaçantavec une nouvelle couleur.
Le problème est que je ne peux pas passer au-delà de créer une nouvelle couleur avec des valeurs d'entrée utilisateur.Je peux créer une nouvelle couleur avec;
set New_Swatch to make color with properties {name:"New Primary Colour", model:process, color value:{82,72,49,46}}
Cependant, dès que j'essaie de remplacer la valeur de couleur avec une variable, j'obtiens l'erreur;
"Adobe InDesign CS5 a eu une erreur: paramètre non valide."
Voici un extrait de code dans le contexte;
set primaryColour to text returned of (display dialog "Enter CMYK calues of Primary Colour (separated by commas e.g. 0,0,0,0)" default answer "") as string
tell application "Adobe InDesign CS5"
activate
tell active document
set New_Swatch to make color with properties {name:"new", model:process, color value:primaryColour}
end tell
end tell
Toute aide reçue avec gratitude.
La solution
Je l'utilise actuellement:
set primaryColor to text returned of (display dialog "Enter CMYK values of Primary Colour (separated by commas e.g. 0,0,0,0)" default answer "") as string
set text item delimiters to ","
set colorvalue to {}
repeat with color from 1 to count of text items of primaryColor
copy (text item colour of primaryColor as number) to end of colorvalue
end repeat
set colorname to "TEST"
tell application "Adobe InDesign CS5"
activate
tell active document
set newcolor to make color with properties {name:colorname, space:CMYK, model:process, color value:colorvalue}
end tell
end tell
Pourquoi?Parce que ça marche.Ce n'est pas joli et ce n'était pas ma première, ni même la 10ème méthode pour faire le travail ... pourquoi cela fonctionne?Aucune idée ...
ça fait juste.Vous penseriez que:
set text item delimiters to ","
set {C,M,Y,K} to text items of primaryColor
...
set newcolor to make color with properties {name:colorname, space:CMYK, model:process, color value:{C,M,Y,K}}
ferait l'affaire, mais ça ne veut pas ... Je suis sûr que vos tentatives jusqu'à présent ont été prouvées à quel point la douleur est de la douleur.
Autres conseils
Vous pouvez également utiliser la commande AppleScript "Choisir la couleur", qui présente un sélecteur de couleur plutôt que de présenter votre utilisateur avec une boîte de dialogue dans laquelle ils doivent entrer des valeurs de couleur numériques.
Cet exemple insère les couleurs RVB comme texte dans une fenêtre Becbedit, mais vous utiliseriez le même principe pour insérer des couleurs CMYK comme texte dans InDesign.
tell application "BBEdit"
activate
set theColorValues to choose color
set theR to round (the first item of theColorValues) / 257
set theG to round (the second item of theColorValues) / 257
set theB to round (the third item of theColorValues) / 257
set theRGBColor to "rgb(" & theR & ", " & theG & ", " & theB & ")"
set selection to theRGBColor
end tell