定義済みのテーブルを生成する次のテンプレートがあります。
<xsl:template name="CreateTable">
<fo:block>
<fo:table border-style="solid" table-layout="fixed">
<fo:table-body>
<fo:table-row>
<xsl:for-each select="Table/Head/Cell">
<fo:table-cell border-style="solid">
<fo:block><xsl:value-of select="." /></fo:block>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
<xsl:for-each select="Table/Row">
<fo:table-row>
<xsl:for-each select="Cell">
<fo:table-cell border-style="solid">
<fo:block><xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
<fo:block margin-top="10pt"/>
</xsl:template>
ここで、最初の行のテキストを90度回転させて、下から上に読み上げたいと思います。
私が思いついた最良の解決策は次のとおりです。
設定する
reference-orientation="0"
に<fo:table>
:<fo:table border-style="solid" table-layout="fixed" reference-orientation="0">
同封
<fo:block>...</fo:block>
以内<fo:table-cell>
とともに<fo:block-container>
90度回転:<fo:table-cell border-style="solid"> <fo:block-container reference-orientation="90"> <fo:block><xsl:value-of select="." /></fo:block> </fo:block-container> </fo:table-cell>
テキストは回転しますが、最初の行の高さは事実上0であり、テキストは前のテキストをオーバーレイするテーブルの上に表示されます。
最初の行のセルに特定の高さを定義する場合、テキストはまだテーブルの前にあり、最初の行内にはありません。
最初の行のセル内にテキストを配置し、行内の最長テキストに応じて行の高さを自動的に計算するにはどうすればよいですか?
回答:
回答№1は1テーブルの外に表示されるテキスト:テーブルセル内のfo:blockは、囲んでいるブロックの左マージンなどの設定を継承している場合があります。
これまで見たことのないセルの高さの問題は、Antennahouse Formatterではセルの内容を回転させることができ、IIRCはセルのサイズを適切に変更します。