JavaScriptでの一斉置換

[1861]JavaScriptでの一斉置換 | 投稿者:たぐ | 投稿日:2008/10/20(Mon) 19:18:46
はじめまして。

複数の文字列を同時に置き換えつつ、それらの書体を変更する、
というJavaScriptを作ろうとしているのですが
(JSでなければならない理由はとくにありません)、
難儀してしまい、以前から勉強させていただいていたこちらにご相談に上がりました。

やりたいことは、
  プリンター → プリンタ
  第三セクター → 第三セクタ
  デザイナー → デザイナ
などと一度に複数の置換をしつつ、その部分だけを
別の書体に置き換えるという作業です。
例えば、全体の文章が明朝で書かれているとして、置き換えられた
「プリンタ」「第三セクタ」「デザイナ」といった部分だけが
太字ゴシックになっている、という状態です。

ネットで検索したサンプルを元に、下記のようにしています。

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

FindString = "プリンター";
ChangeString = "プリンタ";
Kana = true; //カナ識別
ZenHan = true; //全半角識別
findChange();

FindString = "第三セクター";
ChangeString = "第三セクタ";
Kana = true;
ZenHan = true;
findChange();

FindString = "デザイナー";
ChangeString = "デザイナ";
Kana = true;
ZenHan = true;
findChange();

function findChange(){
   app.findPreferences = NothingEnum.nothing;
   app.changePreferences = NothingEnum.nothing;
   FindString = app.activeDocument.search(FindString,Kana,ZenHan, false, false, ChangeString);
}

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

いちおう、複数の置換を一度に行なう、という所までは出来たのですが、
同時に書体を変更する、ということが出来ずにいます。

findChange()内で、FontItem = app.fonts.item("書体名");などとしたうえで、
FindStringやChangeStringに対しappliedFont = FontItem;などとしてみたりと
種々試してみたものの、目的部分を取得して書体を適用するというのが出来ずにいます。

類似のサンプルも探してみたのですが、今のところ見つけられず、
こちらにご相談にあがりました。
動作させたい環境は、MacOS 10.5のInDesign CS3です。

何卒よろしくお願い申し上げます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア