2013-07-08 42 views
1

以下xsl-fo顯示塊中的描述和價格,然後將其呈現爲PDF文檔,但是當明顯有足夠空間時,這兩個元素將組合在一個新行上對於上面的描述,最初我認爲一個簡單的「保持聯繫」是可行的,但它沒有任何區別。紅色顯示描述,綠色顯示價格。價格應該在描述之後,但是如果上面的線上有足夠的空間,它不應該與描述中的最後一個詞組合在一起。XSL-FO阻止在新行上對不同的元素進行分組

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

xsl-fo

+1

請考慮發佈一個最小但完整的XSLT樣例,以及所需的XML輸入和XSL-FO輸出(XML代碼,而不是圖像)。名爲'price'的模板(你在代碼中調用)輸出的結果是什麼? –

回答

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>,否則在樣式表中簡單的空間將被丟失。

+0

是的,我想通了,有點討厭,他們沒有空格/休息組他們! – iswinky

0

我假定不同的元素爲一個處理,但通過前後不同的標記簡單地把一個空間,該描述將填充上面的行中的剩餘空間。

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