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

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

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

公開日:2017年12月18日 最終更新日:2018年5月22日

 スクリーンショットや製品写真に引き出し線テキストが必要なときに。あらかじめ改行で区切ったテキストを読み込み、テキスト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;
};

タグ:


広告

  • 最近の投稿

  • 月別の記事

  • 今月の1枚

  • 人気の記事

    お買い物