Twitterで意外に反響があってびっくりしました。InDesignの合成フォントまわり、本当に面倒なんですよね。やっぱりみんな苦労するところは同じなのか…w
さて、合成フォント関係のスクリプトを3つ紹介します。
すべての合成フォントに特例文字セットをまとめて追加
すごく短いコードですが、任意の特例文字セットをすべての合成フォントに追加します。
追加するセットの名称、追加する文字列、フォント、スタイルをcostomCharSet
オブジェクトに定義してください。
1行目にも書いてありますが、同じ名前の特例文字セットが複数存在できます。セット名が重複しても上書きではなく単純に追加されていく仕様ですので注意してください。
末尾が-\dの合成フォントをまとめて削除
特に説明は不要でしょう。合成フォント名の末尾が「-1」や「-2」みたいになっている合成フォントを強制的にすべて削除します。確認なんかしないで消します。なので、本当に不要であることがわかっている場合でのみ使ってください。
実はこれ、次の1if-1forで紹介しようと思っていましたw
合成フォントの各セットに登録されている文字を書き出し
漢字のセットだけは取得できませんが、「かな」や「全角記号」がセットしてどんな文字を持っているのかをスクリプトから調べることができます。
合成フォントがないドキュメントで実行するとエラーになりますが、その場合は3行目を
var compFont = doc.compositeFonts[0];
としてください。その代わり、書き出したテキストファイル名が「[No composite font].txt」みたいになります。
txtファイルの書き出し先を変更する場合は10行目の関数の第二引数を変更してください。
makeTxtFile(result.join("\n"), "~/"+compFont.name+".txt");
こうするとユーザーフォルダに保存します。
以上、簡単ではありますが合成フォント関係のスクリプトを3つ書いてみました。ここまで書いたら「合成フォントをドキュメント間で同期するスクリプト」も欲しくなりますね^^;;
そのスクリプトはまたいずれ……。