「keep-together」属性を見つけ、行内で改ページする必要がない場合keep-together="always"
、xslt のすべての table-row 要素に追加しました。同じ効果を達成するためのより良い方法はありますか? 少しハッキーなようです。(ps。何らかの説明が提供されれば、誰もより良い回答を提供しない場合、回答として「いいえ」を受け入れます。)
4 に答える
keep-together="always"
これは間接的にも設定される複合プロパティであるため危険ですkeep-together.within-line="always"
(テーブルセル内での改行を禁止します)。keep-together.within-column="always"
代わりに使用する必要があります。しかし、それをテーブル行に指定するのが実際の方法です。それについてハッキーなことは何もありません。
次の 3 つの方法を使用して、テーブルの行をまとめていくつかの成功を収めました。
ブロック全体をまとめる
<tr keep-together.within-page="always">
...
</tr>
隣接するブロックをまとめる
<tr keep-with-next.within-page="always">
<td keep-together.within-page="always">...</td>
...
</tr>
<tr>...</tr>
<tr>...</tr>
<tr keep-with-previous.within-page="always">
<td keep-together.within-page="always">...</td>
...
</tr>
注意が必要ですが、行またはセルが生成されたドキュメントの複数のページにまたがる場合、そのページの下部が下部から外れてしまいます!
この回答は、テーブルを一緒にロックする必要があるときに改ページを超えて流れていたテーブル行の問題を解決しました。<fo:table keep-together="always"></fo:table>
ありがとうを利用しました。
整数キープを処理する XSL フォーマッターを使用すると、整数値を使用して、フォーマッターが行をまとめて保持しようとしますが、ページの最後からはみ出さずに行を分割することができます。ただし、この質問は FOP 用にタグ付けされており、FOP のコンプライアンス ページでは現在、整数保持のサポートが制限されていると記載されています ( http://xmlgraphics.apache.org/fop/compliance.html#fo-property-keep-together )。 YMMV。