このサイトはアフィリエイト広告を利用してます

Illustratorスクリプト テキストを操作する

illustratorスプリクトで[テキスト]を操るサンプルコード

  • テキストを入力を自動化したい
  • ドキュメン内のテキストだけ選択したい
  • テキストをアウトライン化したい
  • テキスト入力を自動化するためにIllustrator用のスクリプトを開発したいが、テキストを操作するコードがわからずに困っていませんか?

    そこで、今回はIllustratorのテキストに関する基本コードを紹介します。

    このコードを学ぶことで、「テキストをアウトライン化」するスクリプトなどを開発することができるようになるので、ぜひ参考にしてください。
    それでは、どうぞ!

    Profile
    この記事を書いている私は、DTPデザイナーとしてIllustratorの操作経験が15年以上あり、スクリプトも自ら作成し、デザイン作業の効率化を図っています。
    本ブログでもスクリプトに関する記事を定期的に公開していますので、ぜひご参考にしてください。
    関連記事:「完全無料」で作業の効率化!Illustratorスクリプト特集!

    「クリエイティブ」がわかる転職エージェント

    ●「量より質」を重視した求人のご紹介
    ●「クリエイティブがわかっている」
    ●「求人企業を深く知る・密接な関係」


    早速、テキスト操作に関わるサンプルコードを紹介していきます。
    今回、紹介するコードはコチラ

    ① テキストを配置しするコード
    ②テキストをアウトライン化するコード
    ③テキストを置換処理するコード
    ④特定文字列の検索&該当オブジェクト選択

    ① テキストを配置しするコード

    
    // 現在アクティブな(開いている)ドキュメントを取得
    var docObj = activeDocument; 
    
    // 使用するフォントを指定(小塚ゴシック Pro R)
    var fName = app.textFonts["KozGoPro-Regular"];
    
    // 新しいテキストフレーム(テキストオブジェクト)をドキュメントに追加
    var titleObj = docObj.textFrames.add();
    
    // テキストフレームに表示する文字列を設定
    titleObj.contents = 'Title';
    
    // 最初の段落(paragraphs[0])の文字フォントを設定
    titleObj.paragraphs[0].characterAttributes.textFont = fName;
    
    // 最初の段落のフォントサイズを5ptに設定
    titleObj.paragraphs[0].size = 5;
    
    // --- 位置を指定(左から100pt、上から200pt)---
    // Illustratorでは座標は「左上が原点」で、[x, y] で指定(yは下に行くほど減る)
    titleObj.position = [100, 200]; 
    
    // --- 色を指定(赤色に設定)---
    // RGBカラーのオブジェクトを作成して fillColor に代入
    var redColor = new RGBColor();
    redColor.red = 255;
    redColor.green = 0;
    redColor.blue = 0;
    
    titleObj.textRange.fillColor = redColor;
    

    ②テキストをアウトライン化するコード

    
    // 現在アクティブな(作業中の)ドキュメントを取得して、変数 doc に格納
    var doc = app.activeDocument;
    
    // ドキュメント内のすべてのテキストフレーム(テキストオブジェクト)を取得
    // textFrames は、単純なテキストから複数行のものまで含む配列のようなオブジェクト
    var texts = doc.textFrames;
    
    // すべてのテキストを対象にループ(後ろから前へ逆順にループ)
    for (var i = texts.length - 1; i >= 0; i--) {
      // 各テキストフレームをアウトライン化(createOutline メソッドを使う)
      // アウトライン化すると、フォント情報のないパスデータに変換される(文字編集できなくなるが、デザイン的には固定される)
      texts[i].createOutline();
    }
    

    ③テキストを置換処理するコード

    
    // 現在アクティブな(作業中の)ドキュメントを取得して、変数 doc に格納
    var doc = app.activeDocument;
    
    // ドキュメント内のすべてのテキストフレーム(テキストオブジェクト)を取得
    // docObj はあらかじめ定義されたアクティブドキュメント(activeDocument)オブジェクトを指す
    var txtCount = docObj.textFrames;
    
    // すべてのテキストフレームを1つずつ選択状態にするループ
    for (var i = 0; i < txtCount.length; i++) {
      try {
        // テキストフレームを選択状態にする
        txtCount[i].selected = true;
      } catch (e) {
        // エラーが起きた場合(例えばロックされていて選択できないとき)には無視して次に進む
      }
    }
    
    // 現在選択されているオブジェクトを配列として取得(上記で選択したテキストたち)
    var selObj = docObj.selection;
    
    // 選択された各オブジェクトに対して処理を行うループ
    for (var i = 0; i < selObj.length; i++) {
      // 現在のテキストオブジェクトの文字列を取得
      var text = selObj[i].contents;
    
      // 文字列中の "2016" をすべて "今年" に置換(gフラグで全文検索)
      selObj[i].contents = text.replace(/2016/g, 今年);
    }
    

    ④特定文字列の検索&該当オブジェクト選択

    
    // アクティブな(現在開いている)Illustratorドキュメントを取得
    var docObj = activeDocument;
    
    // 検索したい文字列を変数に格納(ここを任意の文字列に変更して使う)
    var searchText = "検索する文字を入力";
    
    // ドキュメント内のすべてのテキストフレーム(textFrames)を取得
    var selObj = docObj.textFrames;
    
    // 各テキストフレームに対してループ処理を行う
    for (var i = 0; i < selObj.length; i++) {
      // 現在のテキストフレームのテキスト内容を取得
      var selCon = selObj[i].contents;
    
      // テキスト内容に searchText が含まれていれば(indexOfで検索)
      if (selCon.indexOf(searchText) > -1) {
        // 該当するテキストフレームを選択状態にする
        selObj[i].selected = true;
      }
    }
    



    まとめ:Illustratorスクリプトでテキストを操作するコード

    summary
    この記事では、illustratorスプリクトで使えるテキストを操作するのサンプルコードを紹介してきました。

    illustratorを使ううえで[テキストの操作]は、とても使用頻度の高いコマンドの一つですので今回紹介したサンプルコードを活用して作業の自動化に繋げてください

    というわけで、今回は以上です。

    【illustratorスプリクトで[テキスト]を操るサンプルコード】を最後まで読んでいただき有難う御座いました。

    Illustratorスクリプトのおすすめ書籍!

    サンプルプログラム330本掲載

    また、以下の記事で今回紹介した書籍以外にもスクリプトに関する書籍を紹介しているので参考にしてください。

    ガネメ現役サラリーマン

    投稿者の過去記事

    ◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
    たまに、脇道にそれることもあります。

    ◇このブログはアフィリエイト広告を利用しています

    ◇取得資格
    ・情報セキュリティマネジメント
    ・ITパスポート
    ・色彩検定 2級
    ・色彩検定 UC級
    ・屋外広告士
    ・第2種電気工事士
    その他・・・・

    コメント

    1. この記事へのコメントはありません。

    1. この記事へのトラックバックはありません。

    CAPTCHA


    プロフィール

    face

    ガネメ
    鹿児島県在住
    現役サラリーマン

    ◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
    たまに、脇道にそれることもあります

    ◇取得資格
    ・情報セキュリティマネジメント
    ・ITパスポート
    ・色彩検定 2級
    ・色彩検定 UC級
    ・屋外広告士
    ・第2種電気工事士
    その他・・・・

    詳しいプロフィールはこちら

    アーカイブ

    カテゴリー

    使用中のレンタルサーバー

    ピックアップ記事

    1. Illustratorスクリプト テキストを操作する
      テキストを入力を自動化したい ドキュメン内のテキストだけ選択したい テキスト…
    2. Illustratorスクリプト動作しない原因と対策を解説
      DLしたスクリプトが動作しない エラーが表示されて動かない アップデー…
    3. Illustratorスクリプトでガイドライン整理整頓
      ガイドラインが複数のレイヤーに存在する どのレイヤーにガイドラインがあるのか判らない…




    ブログランキング・にほんブログ村へ   
    PAGE TOP