インデザインで曜日の字形を○●□■等に変えるスクリプト
丸数字などを簡単に変換できる -名もないテクノ手を参考にして、
自分の理解を深めるためにスクリプトをかいてみた。
「日月火水木金土」の文字を○や●や□や■に変えるスクリプト。
文字列中に見つけた「日月火水木金土」を手当たり次第に変換するので、
実用的ではない。
○から■への変換も可能だけど、出来たり出来なかったりするので
そこらへんの仕組みの理解がまだ中途半端かな。
#include 'c.js';//http://svn.coderepos.org//share/platform/illustrator/javascript/lib/c.js (function(){ var weeks ={ '正規表現' : "(日|月|火|水|木|金|土)", 'パターン' : { '通常' : {'日' : 3284 , '月' : 1860, '火' : 1360 , '水' : 2603, '木' : 3814, '金':1754, '土':3156}, '括弧' : {'日' : 8197 , '月' : 8198 , '火' : 8199 , '水' : 8200 , '木' : 8201,'金':8202,'土':8203}, '白丸' : {'日':10471,'月':10472,'火':10473,'水':10474,'木':10475,'金':10476,'土':10477}, '黒丸' : {'日' : 10753 , '月' : 10754,'火':10755,'水':10756,'木':10757,'金':10758,'土':10759}, '白四角' : {'日':11023,'月':11024,'火':11025,'水':11026,'木':11027,'金':11028,'土':11029}, '黒四角' : {'日':11296,'月':11297,'火':11298,'水':11299,'木':11300,'金':11301,'土':11302}, '白角丸' : {'日':11566,'月':11567,'火':11568,'水':11569,'木':11570,'金':11571,'土':11572}, '黒角丸' : {'日':11835,'月':11836,'火':11837,'水':11838,'木':11839,'金':11840,'土':11841} }, 'pList' : function(){ var List = []; for(var x in weeks['パターン'])weeks['パターン'].hasOwnProperty (x) && List.push(x); return List; }, 'dialog' : function(TEXT){ var my_list = weeks.pList(); var my_dialog = app.dialogs.add({name:'検索置換', canCancel:true}); with(my_dialog) { with(dialogColumns.add()) { staticTexts.add({staticLabel:TEXT}); with (borderPanels.add()) { var my_radio_group = radiobuttonGroups.add(); with (my_radio_group) { for (var i = 0; i < my_list.length; i++){ if (i == 0) { radiobuttonControls.add({staticLabel:my_list[i], checkedState:true}); } else { radiobuttonControls.add({staticLabel:my_list[i]}); } } } } } } if (my_dialog.show() == true) { var ans = my_radio_group.selectedButton; my_dialog.destroy(); return my_list[ans]; } else { my_dialog.destroy(); } }, 'changeGlyph' : function(myRange,Target){ try{ app.findGlyphPreferences = app.changeGlyphPreferences = NothingEnum.nothing; app.findGlyphPreferences.appliedFont = app.changeGlyphPreferences.appliedFont = myRange.appliedFont; app.findGlyphPreferences.glyphID = weeks['パターン'][Target[0]][myRange.contents]; //検索グリフ app.changeGlyphPreferences.glyphID = weeks['パターン'][Target[1]][myRange.contents]; //変更グリフ return myRange.changeGlyph (); }catch(e){ //throw e; return false; } }, 'myRegex' : function(my_range_obj,CGP){ try{ //検索の初期化 app.findGrepPreferences = app.changeGrepPreferences =NothingEnum.nothing; //検索オプション app.findChangeGrepOptions.includeLockedLayersForFind = false;//ロックされたレイヤーをふくめるかどうか app.findChangeGrepOptions.includeLockedStoriesForFind = false;//ロックされたストーリーを含めるかどうか app.findChangeGrepOptions.includeHiddenLayers = false;//非表示レイヤーを含めるかどうか app.findChangeGrepOptions.includeMasterPages = false;//マスターページを含めるかどうか app.findChangeGrepOptions.includeFootnotes = false;//脚注を含めるかどうか app.findChangeGrepOptions.kanaSensitive = true;//カナを区別するかどうか app.findChangeGrepOptions.widthSensitive = true;//全角半角を区別するかどうか app.findGrepPreferences.findWhat = weeks['正規表現'];//検索文字の設定 return my_range_obj.findGrep(true).each(weeks.changeGlyph,CGP);//検索の実行(reverse) }catch(e){ //throw e; } } }; var SOURCE_P = weeks.dialog('元になるパターンを選択してください。'); var TARGET_P = weeks.dialog('置換するパターンを選択してください。'); c('S').each(weeks.myRegex,[SOURCE_P,TARGET_P]); })();
var A_Z = { '正規表現' : "[A-Z]", 'パターン' : { '通常' : {'A' : 34, 'B' : 35, 'C' : 36, 'D' : 37, 'E' : 38, 'F' : 39, 'G' : 40, 'H' : 41, 'I' : 42, 'J' : 43, 'K' : 44, 'L' : 45, 'M' : 46, 'N' : 47, 'O' : 48, 'P' : 49, 'Q' : 50, 'R' : 51, 'S' : 52, 'T' : 53, 'U' : 54, 'V' : 55, 'W' : 56, 'X' : 57, 'Y' : 58, 'Z' : 59}, '等幅半角' : {'A' : 264, 'B' : 265, 'C' : 266, 'D' : 267, 'E' : 268, 'F' : 269, 'G' : 270, 'H' : 271, 'I' : 272, 'J' : 273, 'K' : 274, 'L' : 275, 'M' : 276, 'N' : 277, 'O' : 278, 'P' : 279, 'Q' : 280, 'R' : 281, 'S' : 282, 'T' : 283, 'U' : 284, 'V' : 285, 'W' : 286, 'X' : 287, 'Y' : 288, 'Z' : 289}, 'フルワイド ' : {'A' : 790, 'B' : 791, 'C' : 792, 'D' : 793, 'E' : 794, 'F' : 795, 'G' : 796, 'H' : 797, 'I' : 798, 'J' : 799, 'K' : 800, 'L' : 801, 'M' : 802, 'N' : 803, 'O' : 804, 'P' : 805, 'Q' : 806, 'R' : 807, 'S' : 808, 'T' : 809, 'U' : 810, 'V' : 811, 'W' : 812, 'X' : 813, 'Y' : 814, 'Z' : 815}, '縦組用回転' : {'A' : 8753, 'B' : 8754, 'C' : 8755, 'D' : 8756, 'E' : 8757, 'F' : 8758, 'G' : 8759, 'H' : 8760, 'I' : 8761, 'J' : 8762, 'K' : 8763, 'L' : 8764, 'M' : 8765, 'N' : 8766, 'O' : 8767, 'P' : 8768, 'Q' : 8769, 'R' : 8770, 'S' : 8771, 'T' : 8772, 'U' : 8773, 'V' : 8774, 'W' : 8775, 'X' : 8776, 'Y' : 8777, 'Z' : 8778}, '欧文イタリック' : {'A' : 9477, 'B' : 9478, 'C' : 9479, 'D' : 9480, 'E' : 9481, 'F' : 9482, 'G' : 9483, 'H' : 9484, 'I' : 9485, 'J' : 9486, 'K' : 9487, 'L' : 9488, 'M' : 9489, 'N' : 9490, 'O' : 9491, 'P' : 9492, 'Q' : 9493, 'R' : 9494, 'S' : 9495, 'T' : 9496, 'U' : 9497, 'V' : 9498, 'W' : 9499, 'X' : 9500, 'Y' : 9501, 'Z' : 9502}, '括弧' : {'A' : 10004, 'B' : 10005, 'C' : 10006, 'D' : 10007, 'E' : 10008, 'F' : 10009, 'G' : 10010, 'H' : 10011, 'I' : 10012, 'J' : 10013, 'K' : 10014, 'L' : 10015, 'M' : 10016, 'N' : 10017, 'O' : 10018, 'P' : 10019, 'Q' : 10020, 'R' : 10021, 'S' : 10022, 'T' : 10023, 'U' : 10024, 'V' : 10025, 'W' : 10026, 'X' : 10027, 'Y' : 10028, 'Z' : 10029}, '白丸' : {'A' : 10339, 'B' : 10340, 'C' : 10341, 'D' : 10342, 'E' : 10343, 'F' : 10344, 'G' : 10345, 'H' : 10346, 'I' : 10347, 'J' : 10348, 'K' : 10349, 'L' : 10350, 'M' : 10351, 'N' : 10352, 'O' : 10353, 'P' : 10354, 'Q' : 10355, 'R' : 10356, 'S' : 10357, 'T' : 10358, 'U' : 10359, 'V' : 10360, 'W' : 10361, 'X' : 10362, 'Y' : 10363, 'Z' : 10364}, '黒丸' : {'A' : 10631, 'B' : 10632, 'C' : 10633, 'D' : 10634, 'E' : 10635, 'F' : 10636, 'G' : 10637, 'H' : 10638, 'I' : 10639, 'J' : 10640, 'K' : 10641, 'L' : 10642, 'M' : 10643, 'N' : 10644, 'O' : 10645, 'P' : 10646, 'Q' : 10647, 'R' : 10648, 'S' : 10649, 'T' : 10650, 'U' : 10651, 'V' : 10652, 'W' : 10653, 'X' : 10654, 'Y' : 10655, 'Z' : 10656}, '白四角' : {'A' : 10901, 'B' : 10902, 'C' : 10903, 'D' : 10904, 'E' : 10905, 'F' : 10906, 'G' : 10907, 'H' : 10908, 'I' : 10909, 'J' : 10910, 'K' : 10911, 'L' : 10912, 'M' : 10913, 'N' : 10914, 'O' : 10915, 'P' : 10916, 'Q' : 10917, 'R' : 10918, 'S' : 10919, 'T' : 10920, 'U' : 10921, 'V' : 10922, 'W' : 10923, 'X' : 10924, 'Y' : 10925, 'Z' : 10926}, '黒四角' : {'A' : 11174, 'B' : 11175, 'C' : 11176, 'D' : 11177, 'E' : 11178, 'F' : 11179, 'G' : 11180, 'H' : 11181, 'I' : 11182, 'J' : 11183, 'K' : 11184, 'L' : 11185, 'M' : 11186, 'N' : 11187, 'O' : 11188, 'P' : 11189, 'Q' : 11190, 'R' : 11191, 'S' : 11192, 'T' : 11193, 'U' : 11194, 'V' : 11195, 'W' : 11196, 'X' : 11197, 'Y' : 11198, 'Z' : 11199}, '白角丸四角' : {'A' : 11444, 'B' : 11445, 'C' : 11446, 'D' : 11447, 'E' : 11448, 'F' : 11449, 'G' : 11450, 'H' : 11451, 'I' : 11452, 'J' : 11453, 'K' : 11454, 'L' : 11455, 'M' : 11456, 'N' : 11457, 'O' : 11458, 'P' : 11459, 'Q' : 11460, 'R' : 11461, 'S' : 11462, 'T' : 11463, 'U' : 11464, 'V' : 11465, 'W' : 11466, 'X' : 11467, 'Y' : 11468, 'Z' : 11469}, '黒角丸四角' : {'A' : 11713, 'B' : 11714, 'C' : 11715, 'D' : 11716, 'E' : 11717, 'F' : 11718, 'G' : 11719, 'H' : 11720, 'I' : 11721, 'J' : 11722, 'K' : 11723, 'L' : 11724, 'M' : 11725, 'N' : 11726, 'O' : 11727, 'P' : 11728, 'Q' : 11729, 'R' : 11730, 'S' : 11731, 'T' : 11732, 'U' : 11733, 'V' : 11734, 'W' : 11735, 'X' : 11736, 'Y' : 11737, 'Z' : 11738} } }
A-Zも同じ様に処理できるようにしようとした途中のものもあげておきます。