Hello,
I'm working with FOP 0.92 and trying to use fo:leader.
I've got problem when i'm using two fo:leader in one fo:block.
FOP generates :
Text one fisrt line ....................................................
....................................................................text
on second line
or
Text one fisrt line ....................................................
.....................Several text on second line with fdkdlkllkf
fdjkldflklkllklllsddss fjdks
I'd like to generate:
Text one fisrt line ....................................................
.....................................................text on second line
or
Text one fisrt line ....................................................
......Several text on second line with fdkdlkllkf fdjkldflklkllklllsddss
fjdks
Following the XSL sample:
<xsl:template name="GEN-tmpl-generate-leader">
<!-- Parameters definition -->
<xsl:param name="param-left" select="''"/>
<xsl:param name="param-right" select="''"/>
<xsl:param name="param-wide" select="$PAGEL-var-at4-flow-width"/>
<!--Variables definition-->
<!-- Maximum length of the addition of the 2 variables-->
<xsl:variable name="var-len-max">
<xsl:if test="$QRL-var-solution-current-style-name='default'">
<xsl:value-of select="($param-wide - 10) "/>
</xsl:if>
<xsl:if test="$QRL-var-solution-current-style-name='smoke'">
<xsl:value-of select="($param-wide - 10)"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="var-average-character-size">
<xsl:if test="$QRL-var-solution-current-style-name='default'">
<xsl:value-of select="3"/>
</xsl:if>
<xsl:if test="$QRL-var-solution-current-style-name='smoke'">
<xsl:value-of select="4"/>
</xsl:if>
</xsl:variable>
<!-- Calculate length of two params -->
<xsl:variable name="var-left">
<xsl:value-of select="$param-left"/>
</xsl:variable>
<xsl:variable name="var-right">
<xsl:value-of select="$param-right"/>
</xsl:variable>
<!-- We consider that in helvetica, the characters " " , "I", "1", "/" =
have a length equals to zero.
, we replace them by an empty space.-->
<xsl:variable name="var-len-left" =
select=3D"string-length(translate($var-left,' I/1.',''))"/>
<xsl:variable name="var-len-right" =
select=3D"string-length($var-right)"/>
<!--xsl:variable name="var-len-right" =
select=3D"string-length(translate($var-right,' I/1.',''))"/-->
<xsl:variable name="var-len">
<xsl:value-of select="$var-len-left + $var-len-right"/>
</xsl:variable>
<!-- following length, use one block or two blocks-->
<xsl:choose>
<xsl:when test="$var-len*$var-average-character-size < =
$var-len-max">
<fo:block text-align="justify">
<xsl:copy-of select="$param-left"/>
<fo:leader leader-pattern="dots" leader-length.maximum="100%" =
leader-length.optimum="{$param-wide}mm"/>
<xsl:copy-of select="$param-right"/>
</fo:block>
</xsl:when>
<xsl:when test="$var-len-right*$var-average-character-size > =
$var-len-max">
<fo:block text-align="justify">
<xsl:copy-of select="$param-left"/>
<fo:leader leader-pattern="dots" leader-length.maximum="100%" =
leader-length.optimum="{$param-wide}mm"/>
</fo:block>
<fo:block text-align="justify" text-align-last="right">
<fo:leader leader-pattern="dots" leader-length.maximum="0%" =
leader-length.minimum="{$param-wide - ($var-len-right + 10)}mm" =
leader-length.optimum="{$param-wide - ($var-len-right + 10)}mm"/>
<xsl:copy-of select="$param-right"/>
</fo:block> =09
</xsl:when> =09
<xsl:otherwise>
<fo:block text-align="justify">
<xsl:copy-of select="$param-left"/>
<fo:leader leader-pattern="dots" leader-length.maximum="100%" =
leader-length.optimum="{$param-wide}mm"/>
</fo:block>
<fo:block text-align="justify">
<fo:leader leader-pattern="dots" leader-length.maximum="100%" =
leader-length.optimum="{$param-wide - $var-len-right -10}mm"/>
<xsl:copy-of select="$param-right"/>
</fo:block>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Somebody have any idea ?
Thanks and reguards.
Cordialement.
Ekow Buckman
Sopra group
Division Midi-Pyrénées
Agence Aéronautique & Spatial
Tel.: +33 (0)5 34 56 73 61
email : [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>