忍者ブログ

ぼんぷろぐ

InDesignとかイラレとかのスクリプトよもやま話

新しいブログに引っ越しました。

こちらのブログはもう更新しませんが、コメント欄は生きてますので疑問、ご指摘などありましたらどうぞ。

[イラレ]
全角英数←→半角英数を変換するイラレスクリプト

選択物の中の全角英数を半角英数にするスクリプトと、その逆の2点セットです。

いやこんなものとっくに誰かが作ってると思うんですが、これを使ったテキストの複数選択に対応したものが欲しかったので自分で書いてみました。たとえば「2文字以上の数字を半角にする」などという操作も正規表現検索選択との合わせ技で柔軟にできるわけです。

[ダウンロード]

以下ソース(全角→半角の方)

(function(){

var sel=app.selection;
var selTexts=[];
if (sel.constructor.name=="TextRange") {
    selTexts.push(sel)
} else {
    (function (items){
        for (var i=0;i<items.length;i++){
            switch (items[i].constructor.name){
                case "TextRange":
                    selTexts.push(items[i])
                    break;
                case "TextFrame":
                    if (!lockedOrHidden(items[i])) selTexts=selTexts.concat(items[i].textSelection);
                    break;
                case "GroupItem":
                    if (!lockedOrHidden(items[i])) arguments.callee(items[i].pageItems);
                    break;
            }
        }
    })(sel);
}

for (var i=0;i<selTexts.length;i++){
    var str=selTexts[i].contents;
    var offset=selTexts[i].characterOffset;
    var c=selTexts[i].characters[0];
    var n,s;
    for (var j=0;j<str.length;j++){
        n=str.charCodeAt(j);
        s="";
        if (n==0x3000) s=" ";
        else if (0xFF01<=n && n<=0xFF5E) s=String.fromCharCode(n-0xFEE0);
        if (s!=="") {
            c.characterOffset=offset+j-1;
            c.contents=s;
        }
    }
}

function lockedOrHidden(pageItem){
    return pageItem.locked || pageItem.hidden || pageItem.layer.locked || pageItem.layer.hidden;
}
})();
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

編集可能かどうか

pageItemにはそのものずばりのeditableというプロパティがあるので,functionを作らなくてもOKです

Re:編集可能かどうか

ナサケさんありがとうございます
!lockedOrHidden(items[i])のところ、items[i].editableでいいんですね。InDesignにも欲しいプロパティです

  • kawamoto_α
  • 2016/05/30(Mon.)

すばらしい

感動しました。
素敵すぎます。

インデザインで使用したい

こちらのスクリプトインデザインで使用したいのですができますか?

Re:インデザインで使用したい

標準機能にあるやつでどうですか?
https://www.too.com/support/faq/adobe/indesign/24591.html

  • kawamoto_α
  • 2021/04/16(Fri.)

カギカッコを半角にしないようにするには

とても便利でいつもありがたく使わせていただいています。

ただ、()<全角鉤括弧>も一緒に選択して走らせると、これも半角になってしまいます。
英数字だけ半角にする方法はありますか?

Re:カギカッコを半角にしないようにするには

全角英数→半角英数.jsxの39行目
(0xFF01<=n && n<=0xFF5E)
の部分を
((0xFF01 <= n && n < 0xFF08) || (0xFF09 < n && n <= 0xFF5E))
に変えてみてください

  • kawamoto_α
  • 2021/09/17(Fri.)

文頭の全角1マスはそのままにしたい

いつも活用させてもらっています。ありがとうございます。
文頭にある全角の1マス(字下げ)空いている部分は全角のままにしたいのですが、何か方法はあるでしょうか?

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ

※ブラウザによっては当ブログからDLしたzipファイルが拡張子なしになることがあるようですが、.zipを補って開いてください。



イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)