Tor*_*örn 10 xsl-fo apache-fop
我有以下模板来生成一个定义的表:
<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>
Run Code Online (Sandbox Code Playgroud)
现在我想将第一行中的文本旋转90度,以便从下往上阅读.
我想出的最佳解决方案是:
设置reference-orientation="0"
上<fo:table>
:
<fo:table border-style="solid" table-layout="fixed" reference-orientation="0">
Run Code Online (Sandbox Code Playgroud)包围<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>
Run Code Online (Sandbox Code Playgroud)文本是旋转的,但第一行的高度实际为0,文本显示在表格上方,覆盖了前一个文本:
为第一行的单元格定义特定高度时,文本仍在表格之前,而不在第一行内:
如何在第一行的单元格中定位文本,并根据行中最长的文本自动计算行的高度?
显示在表格外部的文本:表格单元格内的 fo:block 可能会继承封闭块的左边距等设置。
我以前从未见过单元格高度问题,在 Antennahouse Formatter 中您可以旋转单元格内容,IIRC 单元格将适当调整大小。