2017-09-15 18 views
1

私の問題は2つのセルを持つテーブルに基づいています。 1つのセルにさらにテキストがある場合、そのセルは下方向に展開されます。その場合、もう一方のブロックは短くなります(表のセルは他のブロックと同じくらい大きいことに注意してください)。XSLT - ブロックはテーブルセルに適合する必要があります

基本的には、テーブルセルの周りに境界を作りたいと思います。しかし、それは境界線としてのイメージでなければならない。私はテーブルのセルにパディングを作り、内部の背景色は白くブロックしています。その戦略では、ちょっとボーダーのように見えます。問題は、2番目のセルのブロックが小さくなっているため、その下にさらにスペースがあることです。境界線が矛盾します。

The output looks like this:

ブロックが収まるように拡張する方法はありますか?

+2

XSLTを使用してHTMLテーブル、XSL-FOテーブルを作成していますか?ターゲット・フォーマットの詳細を提供する必要があります。その答えはおそらくXSLTに固有のものではなく、ターゲット・フォーマットに固有のものです。 –

+0

私はfo:tablesを作っています。何を知る必要がありますか? –

+2

どのFOフォーマッタを使用していますか?また、それは常に2つの列であり、どの列が上に流れるかを常に知っていますか? –

答えて

0

あなたはアンテナハウスを使用しているので、あなたは<fo:block-container column-count="2">を使用し、第二fo:blockbreak-before="column"を追加することができます。 https://www.antennahouse.com/product/ahf64/ahf-ext.html#axf.column-counthttps://www.w3.org/TR/xsl/#break-before

+0

うわー。これは実際に動作します。あなたに大きなおかげで!私はその解決策を見いだすことはなかっただろう。 :) –

1

セル内のテキストを含むブロックは、テキストに合わせてサイズが決まります。これはあなたの現在の背景が不均一な理由です。
必要なものは、テーブル全体の背景色です。テーブルは、最大のセルに合わせてサイズが調整されます。

イメージがfo:ブロック内にあり、この同じブロックにもテーブルが含まれている場合は、必要な結果が得られます。

擬似コード:

<fo:block background-image="image.png"> 
    table goes here, with background-color="white" and a transparent border around the table to set the width/height of the visible portion of the background image. 
</fo:block> 

編集:コメントはより多くの詳細を明らかにしました。

  1. は国境なしでテーブルを定義します。境界線が唯一のテーブルヘッダの周りでなければならないことを追加制約付き
  2. ヘッダーセルに背景イメージを挿入します。
  3. ヘッダーセルのテキストを、マージンが1のブロックに配置します。すべての面で5 mm。
  4. 本文行には、本文テキストとヘッダーテキストを揃える余白も指定します。
+0

私は実際にテーブル内のテーブルを避けようとしました。しかし、それ以外の方法がない場合、私はまだ感謝を言わなければならない! :) 私は、テーブルセルに適合する属性、またはそれを行う要素があると思っていました。 –

+0

しかし、あなたはテーブルにテーブルを置くわけではなく、テーブルにブロックを置いています。 – Hobbes

+0

テーブルセルの周りに境界線を置くことが義務付けられました。境界線はヘッダーの周りになければなりません。その場合、テーブルにテーブルがあります。私は回避策があるとは思わない。 –

関連する問題