UIColorのバグ

直前のエントリの続き。InDesignのJavaScriptでは、UIColor列挙で指定するプロパティのうち、一部のものにはバグがあって、指定した値と実際に適用された値が異なる場合があります。

直前のエントリで示したParagraphStyle.previewColorおよびCharacterStyle.previewColorもそのひとつ。ということは、ご推察のとおり他にもあります。何回か遭遇してます。でもどこだったか覚えてない。

さて、では指定と結果がどのように違ってくるのかを調べました。それが次の表です。

たとえば「UIColor.RED」を指定したら、R=255, G=102, B=0で表示されたので、それがUIColorのどれに当たるのだろう、ということを一つひとつ確認しましたよ。

指定したもの 結果およびそれに該当する名称
日本語名 UIColor RGB値 RGB値 日本語 UIColor
ライトブルー LIGHT_BLUE 79,153,255 0,0,0 BLACK
RED 255,0,0 255,102,0 オレンジ ORANGE
GREEN 79,255,79 0,84,0 ダークグリーン DARK_GREEN
BLUE 0,0,255 0,153,153 濃青緑色 TEAL
イエロー YELLOW 255,255,79 204,153,102 黄褐色 TAN
マゼンタ MAGENTA 255,79,255 153,51,0 茶色 BROWN
シアン CYAN 0,255,255 153,51,255 すみれ色 VIOLET
グレー GRAY 128,128,128 255,153,0 金色 GOLD
BLACK 0,0,0 0,0,135 ダークブルー DARK_BLUE
オレンジ ORANGE 255,102,0 255,153,204 ピンク PINK
ダークグリーン DARK_GREEN 0,84,0 153,153,255 ラベンダー LAVENDER
濃青緑色 TEAL 0,153,153 153,0,0 赤茶色 BRICK_RED
黄褐色 TAN 204,153,102 102,102,0 黄緑色 OLIVE_GREEN
茶色 BROWN 153,51,0 255,153,153 ピーチ PEACH
すみれ色 VIOLET 153,51,255 153,0,51 暗紅色 BURGUNDY
金色 GOLD 255,153,0 153,204,0 若草色 GRASS_GREEN
ダークブルー DARK_BLUE 0,0,135 153,102,0 黄土色 OCHRE
ピンク PINK 255,153,204 102,0,102 紫色 PURPLE
ラベンダー LAVENDER 153,153,255 186,186,186 ライトグレー LIGHT_GRAY
赤茶色 BRICK_RED 153,0,0 171,163,181 藤紫 CHARCOAL
黄緑色 OLIVE_GREEN 102,102,0 122,186,217 スカイブルー GRID_BLUE
ピーチ PEACH 255,153,153 255,181,107 ほおずき色 GRID_ORANGE
暗紅色 BURGUNDY 153,0,51 247,89,107 いちご FIESTA
若草色 GRASS_GREEN 153,204,0 140,166,107 鴬色 LIGHT_OLIVE
黄土色 OCHRE 153,102,0 207,130,181 乳紫色 LIPSTICK
紫色 PURPLE 102,0,102 130,207,194 ベイビーブルー CUTE_TEAL
ライトグレー LIGHT_GRAY 186,186,186 207,207,130 ミルキー SULPHUR
藤紫 CHARCOAL 171,163,181 156,222,156 若菜色 GRID_GREEN
スカイブルー GRID_BLUE 122,186,217 255,255,255 ホワイト WHITE
ほおずき色 GRID_ORANGE 255,181,107 色なし  
いちご FIESTA 247,89,107 色なし  
鴬色 LIGHT_OLIVE 140,166,107 色なし  
乳紫色 LIPSTICK 207,130,181 色なし  
ベイビーブルー CUTE_TEAL 130,207,194 色なし  
ミルキー SULPHUR 207,207,130 色なし  
若菜色 GRID_GREEN 156,222,156 色なし  
ホワイト WHITE 255,255,255 色なし  

すでに表を見て気づかれた方もいると思いますが、リストの表示順で8個ずれていると判明しました。8個、ということは1bitに相当するのでプログラムのどこかで1文字だけ間違っている気がしますね。

でもUIColorは成果物(印刷データ)の生成には全く関係のないところなので、これが直されるかは厳しいだろうなあ。