1

下面的 xsl-fo 在一个块中显示描述和价格,然后呈现到 PDF 文档,但是当上面一行的描述明显有足够的空间时,这两个元素组合在一个新行上,最初我认为一个简单的“保持在一起”会起作用,但它没有任何区别。红色显示描述,绿色显示价格。价格应该在描述之后,但如果上面一行有足够的空间,它不应该与描述中的最后一个词组合在一起。

<fo:block linefeed-treatment="preserve" line-height="8pt">
    <xsl:value-of select="description" />&#160;<xsl:call-template name="price"/>
</fo:block>

xsl-fo

4

2 回答 2

2

因为您使用的是 NBSP,所以将价格和最后一句话粘合在一起。所以你只需要两个值之间的常规空格:

 <fo:block linefeed-treatment="preserve" line-height="8pt">
    <xsl:value-of select="description" />
    <xsl:text> </xsl:text>
    <xsl:call-template name="price"/>
 </fo:block>

记住要使用<xsl:text>,否则样式表中的一个简单空间将会丢失。

于 2013-07-08T13:00:21.137 回答
0

我假设不同的元素被视为一个元素,但只需在不同的标签前后放置一个空格,描述就会填充上面一行的剩余空间。

<fo:block linefeed-treatment="preserve" line-height="8pt">
    <xsl:value-of select="description" /> &#160; <xsl:call-template name="price"/>
</fo:block>
于 2013-07-08T12:31:54.027 回答