2017-05-28 16 views
1

私は次のXSLコードを持っています。ヘッドラインをセルの上端とセルの下端に合わせて配置します。XSL-FO、テーブルセルに2つのブロックを整列する

<fo:table-cell>       
    <fo:block display-align="before"> 
     <xsl:value-of select="headline" /> 
    </fo:block> 
    <fo:block display-align="after"> 
     <xsl:value-of select="description" />        
    </fo:block> 
</fo:table-cell> 

理由はわかりませんが、テーブルのすべてのセルで機能しないようです。

このコードを改善して、すべてのセルに変換できるようにすることはできますか?

+0

プロパティ 'display-align'は' fo:table-cell'(およびその他の書式設定オブジェクト)に適用されますが、**ではなくfo:blockに適用されます。代わりに2つの行を使用できますか(見出しの場合は1つ、説明の場合は1つ)?どのフォーマッターを使用していますか? – lfurini

答えて

1

おそらく、Ifuriniが示唆するように、テーブルセルを2つの行に分割するのが最適な解決策です。それはあなたが望むものではない場合は、これを試してみてください。

<fo:table table-layout="fixed"> 
    <fo:table-column/> 
    <fo:table-body line-height="16pt"> 
     <fo:table-row height="100pt"> 
      <fo:table-cell> 
       <fo:block-container height="50pt" display-align="before"> 
        <fo:block>Top</fo:block>  
       </fo:block-container> 
       <fo:block-container height="50pt" display-align="after"> 
        <fo:block >Bottom</fo:block>  
       </fo:block-container> 
      </fo:table-cell> 
     </fo:table-row> 
    </fo:table-body> 
</fo:table> 

のでblock-conainer内部display-alignを使用しています。しかし、コンテナがコンテンツをラップするだけなので、何らかの高さ制約を与えなければならなくなります。display-alignは役に立たなくなります。

関連する問題