Matt: XSL-FO Inline Objekt

Hi,

ich benutze Alt-Soft XML2PDF Server Version um aus einer XML, einer XSL ein PDF zu erzeugen.

  
<fo:block text-align="center" white-space-collapse="inherit" linefeed-treatment="inherit" white-space-treament="preserve" font-size="10pt" line-height="14pt">  
      <fo:inline font-size="10pt" font-family="Helvetica" color="#000000" font-weight="bold">T</fo:inline>  
      <fo:inline font-size="10pt" font-family="Helvetica" color="#000000" font-weight="normal">est</fo:inline>  
</fo:block>  

Liefert mir folgendes Ergebnis:

T est (T ist fett, mit Leerraum)

In meiner XSL kann ich nichts anderes einstellen.

Nehme ich jetzt zwischen den fo:inline den Leerraum (in der XSL-FO, Auszug siehe oben) weg, so dass es so aussieht:

<fo:inline>T</fo:inline><fo:inline>est</fo:inline>

dann funktioniert es.

Allerdings scheint die Software mir die XSL-FO so zu erzeugen.

Hat jemand eine Idee das Problem zu umgehen?

Gruß Matt

  1. Also das hier würde funktionieren, also muss ich meine XSL doch entsprechend anpassen:

      
    <fo:inline font-family="Helvetica" font-size="10pt" color="#000000" >  
       <fo:inline font-weight="bold">T</fo:inline>  
       <fo:inline font-weight="normal">est</fo:inline>  
    </fo:inline>  
    
    

    Zur XSL:

    Hiermit (1.) wird 2. in der XSL aufgerufen:

    1.~~~xml

    fo:block
                <xsl:apply-templates mode="root"/>
    </fo:block>

      
    2\. ~~~xml
      
    <xsl:template match="text()" mode="root">  
      
      <fo:inline>  
      
       <xsl:choose>  
        <xsl:when test="ancestor::B">  
         <xsl:attribute name="font-weight">bold</xsl:attribute>  
        </xsl:when>  
        <xsl:otherwise>  
         <xsl:attribute name="font-weight">normal</xsl:attribute>  
        </xsl:otherwise>  
       </xsl:choose>  
      
       <xsl:variable name="myString" select="."/>  
       <xsl:value-of select="$myString"/>  
      
      </fo:inline>  
      
    </xsl:template>  
    
    

    Der Input könnte so aussehen:

    <B>T<B>est

    Das liefert mir natürlich

    <fo:inline bold>T</fo:inline>
    <fo:inline normal>est</fo:inline>

    und nicht das gewünschte Ergebnis, das ich ganz oben in diesem Post geschrieben hatte.

    Kann mir jemand auf die Sprünge helfen?