大家好我在两个单元格中都有两个表单元格和一个<fo:leader/>
。如何避免在两个单元格之间获得空间。它无法跨越两个细胞。
我使用Antennahouse和XSLT 2.0。
这是我的表格代码
<fo:table width="100%" >
<fo:table-column column-width="50%"/>
<fo:table-column column-width="50%"/>
<fo:table-body >
<fo:table-row>
<fo:table-cell >
<fo:block border-right-width="0.0mm" >
<xsl:if test="page">
<xsl:attribute name="text-align-last">justify</xsl:attribute>
</xsl:if>
<xsl:value-of select="concat(@ref1,' ')"/>
<xsl:if test="page">
<fo:leader leader-pattern="dots"/>
</xsl:if>
</fo:block>
</fo:table-cell>
<fo:table-cell >
<fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify">
<xsl:if test="page">
<fo:leader leader-pattern="dots" />
</xsl:if>
<fo:inline><xsl:apply-templates select="page" mode="normal"><xsl:with-param name="chapter" select="@chapterNumber"></xsl:with-param></xsl:apply-templates></fo:inline></fo:block>
</fo:table-cell>
</fo:table-row>
答案 0 :(得分:3)
如果没有其他所有东西,使用纯XSL FO并且没有扩展名,这对我有用:
<fo:table width="100%" >
<fo:table-column column-width="50%"/>
<fo:table-column column-width="50%"/>
<fo:table-body >
<fo:table-row>
<fo:table-cell>
<fo:block text-align-last="justify">
<fo:inline>Stuff</fo:inline>
<fo:leader leader-pattern="dots"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block text-align-last="justify">
<fo:leader leader-pattern="dots" />
<fo:inline>1</fo:inline></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
没有空格。
回答这个问题,我有可能幸运吗?再次测试,各种内容和表列宽度。我正在展示的内容可能是kerned和各种长度,我改变了表格单元格的大小。在所有情况下都没有差距。
我测试了一些其他的东西,并意识到差异是格式化程序。 Apache FOP和Antennahouse会产生你所展示的问题,我使用的是RenderX XEP(我为之工作)。它没有表现出这种行为。恕我直言,如果您的格式化程序具有允许字符间和字空间挤压以适应允许容差的算法,则正确答案是没有空格。合理的是#34;合理的&#34;。
答案 1 :(得分:1)
我认为每个表格行的两个系列点之间存在奇怪的“差距”有两个原因:
leader-alignment="reference-area"
填充的空白区域宽度为17毫米,格式化程序只能插入5个点,留出2毫米的额外间隙< / LI>
解决方案:
leader-pattern-width
(XSLFormatter supports)width
,并将表格{{1}}设置为该