最前面のテキストを塗り/線の色でそれぞれの指定数で交互に塗るAppleScript
先日、最前面のテキストを塗り/線の色で1文字ずつ交互に塗るAppleScriptを公開しましたが、その時から「2文字置きにしたい」という声は聞いていたのですが手段が思い浮かばなかったので一旦保留していました。
乗り遅れた感あるけどJSでも作ってみました。サロゲートペアは2020でも正しく処理できませんので...使い方は線と塗りの色を設定してからテキストフレームを選択し実行です。2色+1色パターンとかcolor[]部分で調整できます。https://t.co/zL5rdFNx2S pic.twitter.com/237E0MDavJ
— 古籏一浩 (@openspc) July 14, 2020
古旗さんが塗りのパターンを配列にするという手法を取ってらっしゃったのでそれを参考に、2色の塗りの文字数をそれぞれ設定できるように書いてみました。
使い方
前回同様、塗りの色が初めの文字色で線の色が後の方の文字色になります。
※選択しているレイヤーの最上位の文字が対象になります。
--初めの塗りの色数
set fillCount to 2
--あとの塗りの色数
set strokeCount to 1
上記のようにfillColorを2、strokeColorを1と設定した場合はこのようになります。
必要に応じて書き換えてください。
コード
(*
最前面のテキストに対し、塗り/線の色でそれぞれの指定数で交互に塗るスクリプト
既知の問題:サロゲートペアがあると正しく処理できない
2020-07-15 エラー処理追加/塗りのパターン追加
*)
----塗り分けの文字数の指定
--初めの塗りの文字数
set fillCount to 2
--あとの塗りの文字数
set strokeCount to 1
set _SPACE to ASCII character 32
tell application "Adobe Illustrator"
activate
my chkOpenDoc(count of document)
tell document 1
set {fillColor, strokeColor} to my getColor()
set colorList to my getColorList(fillColor, strokeColor, fillCount, strokeCount)
set colorCount to count of colorList
set celectText to (current layer)'s every page item
tell celectText's item 1
set j to 1
repeat with i from 1 to count of (contents as string)
tell character i
if contents is greater than _SPACE then
set fill color to colorList's item j
set j to j + 1
end if
end tell
if j is greater than colorCount then
set j to 1
end if
end repeat
end tell
end tell
end tell
on chkOpenDoc(i)
tell application "Adobe Illustrator"
if (i) is 0 then
display dialog "ドキュメントが開かれていません" buttons {"OK"} default button "OK" with icon 0
error number -128
end if
end tell
end chkOpenDoc
on getColor()
tell application "Adobe Illustrator"
tell document 1
set fillColor to default fill color
if fillColor's class is CMYK color info or class is RGB color info then
else
display dialog "塗り色が正しく設定されていません。" buttons {"OK"} default button "OK" with icon 0
error number -128
end if
set strokeColor to default stroke color
if strokeColor's class is CMYK color info or class is RGB color info then
else
display dialog "線の色が正しく設定されていません。" buttons {"OK"} default button "OK" with icon 0
error number -128
end if
return {fillColor, strokeColor}
end tell
end tell
end getColor
on getColorList(fillColor, strokeColor, fillCount, strokeCount)
tell application "Adobe Illustrator"
tell document 1
set colorList to {}
repeat with i from 1 to fillCount
set (colorList)'s end to fillColor
end repeat
repeat with i from 1 to strokeCount
set (colorList)'s end to strokeColor
end repeat
end tell
return colorList
end tell
end getColorList
Author And Source
この問題について(最前面のテキストを塗り/線の色でそれぞれの指定数で交互に塗るAppleScript), 我々は、より多くの情報をここで見つけました https://qiita.com/MD5500/items/ed300ec348ae17a191d4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .