2013-07-08 1 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, а не изображения). Что именно выдает шаблон с именем «цена» (вы вызываете в своем коде)? –

ответ

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> 

 Смежные вопросы

  • Нет связанных вопросов^_^