XSL-FO Inline Objekt
Matt
- xsl
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
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?