【InDesign】現在開いているドキュメントを基準にテキストを1行ずつ読み込んで配置 | Blue-Scre{7}n.net | よそいちのDTPメモ

トップページ » InDesign » 【InDesign】現在開いているドキュメントを基準にテキストを1行ずつ読み込んで配置

【InDesign】現在開いているドキュメントを基準にテキストを1行ずつ読み込んで配置

公開日:2017年12月18日 

 スクリーンショットや製品写真に引き出し線テキストが必要なときに。あらかじめ改行で区切ったテキストを読み込み、テキスト1行につきテキストフレーム1個を中身込みで作成するスクリプトです。

 このスクリプトは、雑誌のように1記事あたりのページ数が少ないものに対しては有効ですが、書籍のようにページ数が多く結構な数の引き出し線テキストが求められる場合、もうちょい工夫が必要です。

 InDesignではサンプルスクリプトの「BreakFream.jsx」でほとんど同じことができます。テキスト段階でばらしてから配置するか、配置してからばらすか順番が違うだけです。

スクリプト本文

ダウンロード

/*
20180522 ダイアログをキャンセルした場合はスクリプトが終了するように
    */
var doc=app.activeDocument;
    //現在のフォルダ
    var DocPath = doc.filePath;
    var DocPathdec =decodeURI(DocPath);//パスを読めるように変換
    //テキストを読み込む
    var tx=new File(DocPathdec).openDlg("配置するテキストを選択","*.txt",false);
          try{
          var txr = tx.open("r");
          var txarr=[];
              while(!tx.eof){
                txarr.push(tx.readln());
              };
    }catch(e){
        exit();
    }
var txtcount=txarr.length;
var frmHeight=5.75;
//オブジェクトスタイルを使う場合
//var objStl=app.activeDocument.objectStyles.itemByName("オブジェクトスタイル名");
for(var i=0; i < txtcount; i++){
  var txtFrm=doc.textFrames.add();
    txtFrm.visibleBounds=[(20+frmHeight*i)+2*i,-60,(25.75+frmHeight*i)+2*i,-10];
    txtFrm.contents=txarr[i];
    //オブジェクトスタイルを使う場合
    //txtFrm.appliedObjectStyle=objStl;
};

タグ:


広告