4 返信 最新の回答 日時: Mar 6, 2009 4:07 PM ユーザー:(jo05010)

    スクリプトで選択文字の「フォント・級数」を取得する方法

    Level 1
      OS10.5.6 CS3環境で作業しています。

      複数のテキストボックスを選択して各段の文頭・文末の文字を取得して実行するスクリプトを書いたのですが、
      書体によって処理を変える事が出来なくて困っています。
      書体か級数を取得して処理を変える事は可能でしょうか。
      javascriptで書いています。

      どなたか、ご教授お願いします。

      sentaku_obj = app.activeDocument.selection

      for ( i = 0 ; i < sentaku_obj.length ; i ++ )

      {

      obj=app.activeDocument.selection[i];

      danraku = obj.paragraphs.length;//段落数の取得

      for ( x = 0 ; x < obj.paragraphs.length ; x ++ )

      {

      var dan = obj.paragraphs[x];//各段を一つづつ選ぶ

      var danraku_02 = dan.contents;//各段の文字を取得

      var mojisu = danraku_02.length;//選択した段落の文字数を取得

      if (x+1 != danraku){mojisu = mojisu-1};//改行を除いた文字数を取得

      var mojisu_01 = mojisu-1;

      var sentou = danraku_02.substr(0,1);

      var bunmatu = danraku_02.substr(mojisu_01,1);

      }}
        • 1. Re: スクリプトで選択文字の「フォント・級数」を取得する方法
          Level 1
          各種書籍(『組版時間を半減する! InDesign自動処理実例集』など)の著者である古籏 一浩さんの以下サイトにヒントはありませんか?

          「テキスト(文字)関連」や「フォント(書体)関連」あたりでは?

          InDesign CS3自動化作戦 with JavaScript
          http://www.openspc2.org/book/InDesignCS3/
          • 2. Re: スクリプトで選択文字の「フォント・級数」を取得する方法
            Level 1
            radeonさま
            返信ありがとうございます。

            教えていただいた古籏 一浩さんの書籍・サイトは常日頃参考にさせていただいてます。
            確かに「テキスト・フォント関連」で指定したフォントに置き換えるという内容がありましが、
            選択している文字のフォントや級数を取得するといったもの無かったと思います。

            まだまだ勉強不足なので素人的な質問で申し訳ないのですが
            何か特別なメソッドで指定しないと取得は難しいのでしょうか。
            • 3. Re: スクリプトで選択文字の「フォント・級数」を取得する方法
              seuzo-oJiFme Level 1
              s/テキストボックス/テキストフレーム/g;

              function myerror(mess) {
              if (arguments.length > 0) { alert(mess); }
              exit();
              }
              var my_selection = app.activeDocument.selection;
              if (my_selection.length == 0) {myerror("何も選択されていません")}
              if (my_selection[0].reflect.name != "TextFrame") {myerror("テキストフレームを選択してください")}
              var i = 1;//行数
              if (my_selection[0].paragraphs[i].characters.length < 2) {myerror("空行です")}

              var my_first_character = my_selection[0].paragraphs[i].characters[0];//1文字目
              my_first_character.appliedFont.name;//フォント名
              my_first_character.pointSize//文字サイズ

              var my_last_character = my_selection[0].paragraphs[i].characters[-2];//最後の文字
              my_last_character.appliedFont.name;//フォント名
              my_last_character.pointSize//文字サイズ
              • 4. Re: スクリプトで選択文字の「フォント・級数」を取得する方法
                Level 1
                市川せうぞー様
                返信ありがとうございます。

                以前、文字の検索置換での質問も解決していただきありがとうございました。
                今回も自分のスクリプトに組み込んでみたところ、イメージ通りものができました。
                本当にありがとうございました。