使用用户输入的CMYK值在InDesign CS5中创建颜色

时间:2014-07-30 14:03:11

标签: colors applescript adobe-indesign

我试图创建一个脚本,在打开模板文件的过程中,会询问用户一组CMYK值。

然后想法改变现有颜色的值(称为"原色"),从而改变应用它的每个项目的颜色......或者添加这个新颜色并删除'原色'用新颜色替换它。

问题是我无法通过用户输入值创建新颜色。我可以用;

创建一个新颜色
 set New_Swatch to make color with properties {name:"New Primary Colour", model:process, color value:{82,72,49,46}}

然而,只要我尝试用变量替换颜色值,我就会得到错误;

" Adob​​e InDesign CS5出错:参数无效。"

以下是上下文中的一段代码;

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

感激不尽的任何帮助。

3 个答案:

答案 0 :(得分:0)

我目前使用它:

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

为什么呢?因为它有效。这不是很漂亮,这不是我的第一个,甚至是第10个完成工作的方法......为什么这样做?不知道......

就是这样。你会想:

  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}}

可以做到这一点,但事实并非如此......我相信你到目前为止的尝试已经证明了这个特定功能的痛苦程度。

答案 1 :(得分:0)

您可能还想使用AppleScript“选择颜色”命令,该命令会显示颜色选择器,而不是向用户显示一个对话框,他们必须在其中输入数字颜色值。

此示例将RGB颜色作为文本插入BBEdit窗口,但您可以使用相同的原理将CMYK颜色作为文本插入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

答案 2 :(得分:-1)

将primaryColor设置为返回的文本(显示对话框“输入Primary Color的CMYK值(用逗号分隔,例如0,0,0,0)”默认答案“”)作为字符串

将文本项分隔符设置为“,”

将colorvalue设置为{}

重复颜色,从1到primaryColor的文本项计数 复制(将primaryColor的文本项颜色作为数字)复制到colorvalue的结尾

结束重复

将颜色名称设置为primaryColor

告诉应用程序“ Adob​​e InDesign CC 2017”

激活

告诉活动文档

设置newcolor以使用属性{name:colorname,space:CMYK,model:process,color value:colorvalue}来着色

结束告诉

结束告诉