テキストの自動流し込みで。
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(); } }
なんてことをしてるんだが、本当はどうしたらいいんだろ。
よくわかっていないかもしれませんが…
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);