XSLT 打印PDF数据自动换行问题
在打印PO的时候发现数据过大影响PDF外观,需要解决:长度最大为20

解决方法:我们先写一个template, 取string-length 判断数据长度,如果长于19(ps:19是根据实际框设计的大小来定的)就换行,然后继续调用本身,这里也采用了一个递归形式。(注意在这个解决方法中针对的是我的实际情况来设计的,最大位数为20,其他情况暂且没试,不过应该差不多)
<xsl:template name="processText2"> <xsl:param name="str"/> <xsl:choose> <xsl:when test="string-length($str) > 19"> <xsl:value-of select="substring($str,1,19)"/> <fo:block white-space-collapse="false"> </fo:block> <xsl:call-template name="processText2"> <xsl:with-param name="str" select="substring($str,20)"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$str"/> </xsl:otherwise> </xsl:choose> </xsl:template>
然后在前面的取值中调用这个template
<fo:table-cell padding="3pt" border-width="0.5pt" border-style="solid" border-color="grey" padding-top="5pt"> <fo:block> <xsl:call-template name="processText2"> <xsl:with-param name="str"> <xsl:value-of select="LINSKU"/> </xsl:with-param> </xsl:call-template> </fo:block> </fo:table-cell>
解决后的外观就很好看了


浙公网安备 33010602011771号