InDesign Javascript のrow.keepWithNextRow
複数のテキストフレームにまたがるテーブルの行の位置を
把握したくRow.keepWithNextRow を使用しているのですが
なぜか?エラーが発生してしまいます。
########
myRows = myTable.rows;
for( iQW = 0 ;; iQW ++ )
{
myRow = myRows.item(iQW);
if( myRow == null ) break;
alert( myRow.height );
alert( myRow.keepWithNextRow ); ←ここでエラー
}
########
ならば、Cell.keepWithNextRowでどうだ!
と試してみましたが、テキストフレームをまたいでいる
にも関わらずすべて「false」が通知されました。
テキストフレームをまたがるテーブルの行を検知する
場合、keepWithNextRowを使用するのは間違いなので
しょうか?
それともInDesignのバグでしょうか?
他のロジックでうまく検知する方法はないでしょうか?
皆さんの知恵をお貸し下さい。
なにとぞ、よろしくお願いいたします。
» 1
把握したくRow.keepWithNextRow を使用しているのですが
なぜか?エラーが発生してしまいます。
########
myRows = myTable.rows;
for( iQW = 0 ;; iQW ++ )
{
myRow = myRows.item(iQW);
if( myRow == null ) break;
alert( myRow.height );
alert( myRow.keepWithNextRow ); ←ここでエラー
}
########
ならば、Cell.keepWithNextRowでどうだ!
と試してみましたが、テキストフレームをまたいでいる
にも関わらずすべて「false」が通知されました。
テキストフレームをまたがるテーブルの行を検知する
場合、keepWithNextRowを使用するのは間違いなので
しょうか?
それともInDesignのバグでしょうか?
他のロジックでうまく検知する方法はないでしょうか?
皆さんの知恵をお貸し下さい。
なにとぞ、よろしくお願いいたします。
[1063]Re: InDesign Javascript のrow.keepWithNextRow |
投稿者:ミシマバイカモ |
投稿日:2008/05/03(Sat) 10:34:03
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88
>複数のテキストフレームにまたがるテーブルの行
というのがいまいち理解できないのですが、
keepWithNextRowはセルの属性-行と列の設定-段落分離禁止オプションの「次の行と連動(K)」のチェックボックスにあたります。
ですから、これがtrueならば、この行の次の行が一緒に動くことになるだけで、次のテキストフレームに押し出されているか否かを表わすわけではないのです。
(r/wのプロパティはどういう状態になっているとか、どのテキストフレームに属するとかの状態は示さなかったと思います)
また、row単位でkeepWithNextRowを表示させてもエラーにはなりませんでした。(Windows Xp InDesign CS2 4.0.5)
次のテキストフレームに移る行の位置を知る方法ですが、次のようなものでどうでしょう。
//Tableを選択して実行
var myTable = app.selection[0];
for (var i=1;i<myTable.rows.length;i++){
var p0 = myTable.rows[i-1].cells[0].insertionPoints[0].parentTextFrames[0].index;
var p1 = myTable.rows[i].cells[0].insertionPoints[0].parentTextFrames[0].index;
if (p0 != p1) alert(i + ":この行で次のテキストフレーム");
}
» 2
>複数のテキストフレームにまたがるテーブルの行
というのがいまいち理解できないのですが、
keepWithNextRowはセルの属性-行と列の設定-段落分離禁止オプションの「次の行と連動(K)」のチェックボックスにあたります。
ですから、これがtrueならば、この行の次の行が一緒に動くことになるだけで、次のテキストフレームに押し出されているか否かを表わすわけではないのです。
(r/wのプロパティはどういう状態になっているとか、どのテキストフレームに属するとかの状態は示さなかったと思います)
また、row単位でkeepWithNextRowを表示させてもエラーにはなりませんでした。(Windows Xp InDesign CS2 4.0.5)
次のテキストフレームに移る行の位置を知る方法ですが、次のようなものでどうでしょう。
//Tableを選択して実行
var myTable = app.selection[0];
for (var i=1;i<myTable.rows.length;i++){
var p0 = myTable.rows[i-1].cells[0].insertionPoints[0].parentTextFrames[0].index;
var p1 = myTable.rows[i].cells[0].insertionPoints[0].parentTextFrames[0].index;
if (p0 != p1) alert(i + ":この行で次のテキストフレーム");
}
[1064]Re: InDesign Javascript のrow.keepWithNextRow |
投稿者:のりちゃん |
投稿日:2008/05/07(Wed) 11:52:35
ミシマバイカモ様
返信(ご丁寧な解説まで)ありがとうございました。
結果、OKでした。
parentTextFrameからたどる方法は思いつきませんでした。
ありがとうございました。
返信(ご丁寧な解説まで)ありがとうございました。
結果、OKでした。
parentTextFrameからたどる方法は思いつきませんでした。
ありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)