2008年9月18日木曜日

半角数字を半角等幅数字に変換

InDesignの仕事でこれが必要になったのでメモ。

せうぞーさんの
二桁数字を半角字形にする
▼正規表現ダイアログはこんな感じ

検索フィールド:(?<![¥.,])¥b¥d¥d¥b(?![¥.,])

置換フィールド:

置換形式:+字形:等幅半角字形

CS2に対応してたかな? 派遣先にて要確認。

異体字(等幅半角字形)に切り替えるスクリプト
//
// 選択されたテキストフレームや選択されているテキストの英数字等を
// 異体字(等幅半角字形)に切り替えるスクリプト
//
var docObj = app.activeDocument;
var selObj = docObj.selection;

var i, j;

// オブジェクトが選択されている場合
if(selObj.length != 0) {
for(j = 0; j < selObj.length; j++) {
// 属性がテキストのテキストフレームオブジェクト、または任意のオブジェクトの中のテキストを選択している場合
if( (selObj[j] == "[object TextFrame]") && (selObj[j].contentType == ContentType.textType) ||
(selObj[j] == "[object Text]") ) {
for(i = 0; i < selObj[j].contents.length; i++) {
// 対象文字が英数字等の場合
if(selObj[j].characters[i].contents.match(/[0-90-9a-zA-Za-zA-Z¥-¥:]/) != null)
// 対象文字を等幅半角字形に切り替える
selObj[j].characters[i].opentypeFeatures = [["hwid", 1]];
}
}
}
} else alert("テキスト又はテキストフレームを選択して下さい");

注:和文全角の&?<>に置き換えて記述してます。

0 件のコメント: