Problemas con saltos de línea en XSLT
Publicado por Mario (1 intervención) el 28/12/2015 17:11:44
Hola:
Estoy intentando sacar en un pdf una información incluida por pantalla en una aplicación web, aplicando una hoja de transformación.
El caso es que no doy con la forma de que se respeten los saltos de línea
Es decir que si meto por pantalla
a
b&C
En el PDF me sale a?b&C
El XSLT que estoy usando es el siguiente
<xsl:variable name="hex" select="'0123456789ABCDEF'"/>
<xsl:variable name="ascii"> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</xsl:variable>
<xsl:variable name="safe">!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~</xsl:variable>
<xsl:variable name="latin1"> ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ</xsl:variable>
<xsl:template name="decode">
<xsl:param name="str"/>
<xsl:choose>
<xsl:when test="contains($str,'%')">
<xsl:value-of select="substring-before($str,'%')"/>
<xsl:variable name="hexpair" select="translate(substring(substring-after($str,'%'),1,2),'abcdef','ABCDEF')"/>
<xsl:variable name="decimal" select="(string-length(substring-before($hex,substring($hexpair,1,1))))*16 + string-length(substring-before($hex,substring($hexpair,2,1)))"/>
<xsl:choose>
<xsl:when test="$decimal < 127 and $decimal > 31">
<xsl:value-of select="substring($ascii,$decimal - 31,1)"/>
</xsl:when>
<xsl:when test="$decimal > 159">
<xsl:value-of select="substring($latin1,$decimal - 159,1)"/>
</xsl:when>
<xsl:otherwise>?</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="decode">
<xsl:with-param name="str" select="substring(substring-after($str,'%'),3)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
¿Como podría hacer para que respetase los saltos de línea en el PDF?
Gracias
Estoy intentando sacar en un pdf una información incluida por pantalla en una aplicación web, aplicando una hoja de transformación.
El caso es que no doy con la forma de que se respeten los saltos de línea
Es decir que si meto por pantalla
a
b&C
En el PDF me sale a?b&C
El XSLT que estoy usando es el siguiente
<xsl:variable name="hex" select="'0123456789ABCDEF'"/>
<xsl:variable name="ascii"> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</xsl:variable>
<xsl:variable name="safe">!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~</xsl:variable>
<xsl:variable name="latin1"> ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ</xsl:variable>
<xsl:template name="decode">
<xsl:param name="str"/>
<xsl:choose>
<xsl:when test="contains($str,'%')">
<xsl:value-of select="substring-before($str,'%')"/>
<xsl:variable name="hexpair" select="translate(substring(substring-after($str,'%'),1,2),'abcdef','ABCDEF')"/>
<xsl:variable name="decimal" select="(string-length(substring-before($hex,substring($hexpair,1,1))))*16 + string-length(substring-before($hex,substring($hexpair,2,1)))"/>
<xsl:choose>
<xsl:when test="$decimal < 127 and $decimal > 31">
<xsl:value-of select="substring($ascii,$decimal - 31,1)"/>
</xsl:when>
<xsl:when test="$decimal > 159">
<xsl:value-of select="substring($latin1,$decimal - 159,1)"/>
</xsl:when>
<xsl:otherwise>?</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="decode">
<xsl:with-param name="str" select="substring(substring-after($str,'%'),3)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
¿Como podría hacer para que respetase los saltos de línea en el PDF?
Gracias
Valora esta pregunta


0