Vertical alignment XSL-FO:如何使值垂直扩展

Vertical alignment XSL-FO:如何使值垂直扩展,vertical-alignment,xsl-fo,Vertical Alignment,Xsl Fo,我的XML中有一个长度不同的名称字符串。如果是一个很长的名字,它会横向扩展,这是我无法承受的。我怎样才能使它垂直生长?下面是我所拥有的 <fo:table-cell font-family="Courier" font-size="10px" display-align="before"height="0.01042in" border-style="solid" border-color="green"> <fo:block padding-top="1pt" pad

我的XML中有一个长度不同的名称字符串。如果是一个很长的名字,它会横向扩展,这是我无法承受的。我怎样才能使它垂直生长?下面是我所拥有的

<fo:table-cell font-family="Courier" font-size="10px" display-align="before"height="0.01042in" border-style="solid" border-color="green">
    <fo:block padding-top="1pt" padding-bottom="1pt" borderstyle="solid">
        <fo:inline>
            <xsl:text>USER INFORMATION</xsl:text>
        </fo:inline>
        <fo:block>
          <xsl:text>&#xA;</xsl:text>
        </fo:block>
        <fo:inline font-family="Courier" font-size="12px" font-weight="bold">
          <xsl:value-of select="USERNAME" />
       </fo:inline>
    </fo:block>
</fo:table-cell>

用户信息

;

我在评论中使用了Joel在上面发布的链接。当我精确地应用模板时,它显示奇数长度的字符串,但缺少偶数长度字符串的最后一个字符。然后,我将比较从小于
更改为小于或等于
=
,结果成功了。 希望它能帮助别人。谢谢

<xsl:template name="zero_width_space_1">
    <xsl:param name="data" />
    <xsl:param name="counter" select="0" />
    <xsl:choose>
        <xsl:when test="$counter &lt;= string-length($data)">
            <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")' />
            <xsl:call-template name="zero_width_space_2">
                <xsl:with-param name="data" select="$data" />
                <xsl:with-param name="counter" select="$counter+1" />
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

<xsl:template name="zero_width_space_2">
    <xsl:param name="data" />
    <xsl:param name="counter" />
    <xsl:value-of select='concat(substring($data,$counter,1),"&#8203;")' />
    <xsl:call-template name="zero_width_space_1">
        <xsl:with-param name="data" select="$data" />
        <xsl:with-param name="counter" select="$counter+1" />
    </xsl:call-template>
</xsl:template>

 <xsl:call-template name="zero_width_space_1">
    <xsl:with-param name="data" select="mystring" />
</xsl:call-template>


尝试实现此链接()中的两个模板。该列是否会变得比应该的更宽?你指定了这个列的列宽了吗?@Hobbes,是的,我对列宽进行了硬编码,这对标签有效,但变量扩展了列宽。上面代码的问题是,它将一个单词分成两行。理想情况是在出现空格字符时添加新的换行符。如果没有,则遵循上述代码中描述的原则。