M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年10月25日 02:07

Illustratorで現在のドキュメント名を入力するJavaScript

このエントリーをはてなブックマークに追加 mixiチェック

Illustrator 10~CS3のJavaScriptで、選択しているテキストパスに、現在のドキュメント名を入力します。ただし、Illustrator CS1では全く役に立ちませんw

用途として、Illustratorで手動面付けしている事業所さんなんかで、トンボ外にドキュメント名を表示することで、出力したものを取り違えないようにするのに使えます。

機能の割に長いのは、Illustrator 10~CS3対応するため、Illustrator 10においてCS以降のアクセス方法が使えるようなappオブジェクトを拡張しているからです。無駄だよね……

Filename: input_filename.jsx (Illustrator 10の場合は拡張子jsの方がいいのかな)

/*
  input_filename.jsx : 選択したテキストにファイル名を入力します
*/
(function(){
  // 機能拡張:AI10の場合、appオブジェクトを拡張
  if (typeof app == "undefined") {
    // Illustrator10の場合
    app = {};
    app.documents = documents;
    if (app.documents.length != 0) { 
      // activeDocumentが存在していないとアクセスすらできない
      app.activeDocument = activeDocument;
    }
  }
  // main
  if (app.documents.length != 0) { 
    // ドキュメントを1つ以上開いている
    var objDoc  = app.activeDocument;
    var selObjs = objDoc.selection;
    switch ( selObjs.length ) {
      case 0: // 選択無し
        alert("テキストパスを1つだけ選択してください。");
        break;
      case 1: // 1つだけ選択
        if ( (selObjs[0].typename == "TextFrame") // AICS以降
          || (selObjs[0].typename == "TextArtItem") ) {
          // TextFrameだった
          selObjs[0].contents = objDoc.name;
        }
        else { // TextFrame以外だった
          alert("テキストパスを選択してください。");
        }
        break;
      default: // 2つ以上選択
        alert("複数選択しています。"
            + "テキストパスを1つだけ選択しなおしてください。");
    }
  }
  else { // ドキュメントを開いていない
    alert("Illustratorで書類を開いてから実行してください。");
  }
})();

CodeReposにIllustratorのディレクトリ掘っていいかなー
http://svn.coderepos.org/share/platform/illustrator
あたりかな。

投稿 大野 義貴 [Script] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2641

コメント(2)

いつも拝見して大変参考にさせてもらっおります。
JavaScriptについてあまり詳しくありませんので一つご教授を、、
clさんが使っている、
(function(){
......
})();
で囲む利点とはどのようなものでしょうか。
何か再利用する際にとても便利そうな「何か」が
隠されていそうです。是非お教えください。

WEBにおけるprototype.js的なバージョン間の差を吸収するようなライブラリとかないですかね。
adobeに率先して用意してほしい。

スミマセン。自己解決しました。
クロージャというんですね。勉強しなおしてきます。

コメントする