CS3でstoryPreferences.frameTypeが効かない

テキストの自動流し込みで。

VBSでは前々から分かってたんだけども、JavaScriptでもやっぱり同じだった。

var doc = app.open("G:/example/example.indt",true);
doc.storyPreferences.frameType=1179087984; //フレームグリッドに設定
doc.spreads[0].place ("G:/example/example.txt", [x, y],"レイヤー 1",false,true);

で、タグ付きテキストを流し込むスクリプトで、CS2まではちゃんとフレームグリッドに流し込まれていたのに、CS3ではどうしてもテキストフレームになってしまう。
しょうがないので流したあとからフレームグリッドに変更している。

var doc = app.open("G:/example/example.indt",true);
doc.spreads[0].place ("G:/example/example.txt", [x, y],"レイヤー 1",false,true);
doc.stories[0].storyPreferences.frameType = 1179087984;

そうするとページ数が減るので

for (i = doc.spreads.length-1 ; i>-1 ; i--){
  if (doc.spreads[i].textFrames[0].contents != "" ){
    break;
  } else {
    doc.spreads[i].remove();
  }
}

なんてことをしてるんだが、本当はどうしたらいいんだろ。

『CS3でstoryPreferences.frameTypeが効かない』へのコメント

  1. 名前:せうぞー 投稿日:2008/06/14(土) 09:23:51 ID:bddc26232 返信

    よくわかっていないかもしれませんが…
    doc.spreads[0].place (my_file, [10, 20],"レイヤー 1",false,true);
    は新規にテキストフレームを作成して配置するのだから、ドキュメント中にストーリーがn個あれば、doc.stories[n+1]なんですよね?
    そもそもストーリーがないのだったら(新規に作るのだったら)doc.stories[0]の属性を変更できない、と。
    これだとページを増やすのを別途でやらなくちゃですか。
    var my_file = File.openDialog("読み込みファイルを指定してください");
    var doc = app.activeDocument;//このドキュメントにひとつだけストーリーがあるとして
    doc.stories[0].storyPreferences.frameType = 1179087984;
    doc.textFrames[0].place (my_file);

  2. 名前:お~まち 投稿日:2008/06/14(土) 11:46:40 ID:37318590e 返信

    実はこれ、去年CSで動かしてたものをCS3に移植したんですが(VBSで外部からコントロールしている)、CSでは新規に作成されるtextFrameがテキストフレームかフレームグリッドかはドキュメントデフォルトに依存していたんです。
    ところがCS3になって、ドキュメントデフォルトに関係なく、すべてテキストフレームで作成されるようになっちゃったわけです(タグ付きテキストの配置の場合のみかも知れないですが)。
    この物件は行取りを多用しているのでフレームグリッドでなくてはならない、ということで、自動流し込み後にストーリーの属性を変更、余ったページを削除しています。
    せうぞーさんの仰るとおり、先にtextFrameを作成しておいて、あふれ分ページを増やす手もありだと思います。どちらが早いか、一度テストしてみたいと思います。
    思えばInDesign 2.0の時はtextFrameにテキストを配置する場合にもautoflowingのオプションがあったなあ。使ったことなかったけど。この辺はバージョンが上がるごとに不便になっているのかも。