Hi,
Sometime ago, I've tried this code (this applies font-familly='Symbol' when 
needed)

<xsl:template match="text()">
        <xsl:call-template name="testCaractÃres">
                <xsl:with-param name="texte" select="."/>
        </xsl:call-template>
</xsl:template>

<xsl:template name="testCaractÃres">
        <xsl:param name="texte"/>
        <xsl:variable 
name="expression">&#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;&#x0397;&#x0398;&#x0399;&#x039A;&#x039B;&#x039C;&#x039D;&#x039E;&#x039F;&#x03A0;&#x03A1;&#x03A3;&#x03A4;&#x03A5;&#x03A6;&#x03A7;&#x03A8;&#x03A9;&#x03B1;&#x03B2;&#x03B3;&#x03B4;&#x03B5;&#x03B6;&#x03B7;&#x03B8;&#x03B9;&#x03BA;&#x03BB;&#x03BC;&#x03BD;&#x03BE;&#x03BF;&#x03C0;&#x03C1;&#x03C2;&#x03C3;&#x03C4;&#x03C5;&#x03C6;&#x03C7;&#x03C8;&#x03C9;&#x03D1;&#x03D2;&#x03D5;&#x03D6;</xsl:variable>
        <xsl:variable name="texteTest" 
select="translate($texte,$expression,'&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;&#x0391;')"/>
        <xsl:choose>
                <xsl:when test="contains($texteTest,'&#x0391;')">
                        <xsl:variable name="texteAvant" 
select="substring-before($texteTest,'&#x0391;')"/>
                        <xsl:variable name="positionCar" 
select="string-length($texteAvant)+1"/>
                                <xsl:value-of select="$texteAvant"/><fo:inline 
font-weight="normal" font-family="Symbol"><xsl:value-of
                                        
select="substring($texte,$positionCar,1)"/></fo:inline><xsl:call-template
                                        name="testCaractÃres">
                                        <xsl:with-param name="texte" 
select="substring($texte,$positionCar+1)"/>
                                </xsl:call-template>
                </xsl:when>
                <xsl:otherwise><xsl:value-of select="$texte"/></xsl:otherwise>
        </xsl:choose>
</xsl:template>

Pascal

 

> -----Message d'origine-----
> De : Jeremias Maerki [mailto:[EMAIL PROTECTED] 
> Envoyà : mercredi 9 mars 2005 17:17
> 
> On 09.03.2005 17:07:21 [EMAIL PROTECTED] wrote:
> > Ok so I think the only way out it to pre process my xml 
> file to mark 
> > special characters so that I can them easily find them in my xsl 
> > document.
> 
> Good idea if that's possible.
> 
> > Could another option be to find a font that contains all unicode 
> > characters?
> 
> Sure, if such a beast exists.
> 
> > How difficult is it to embed a special font that would work both on 
> > Mac and PC? Do you have any pointers on how to do this?
> 
> Simply get a PC-compatible font. It should also work on the 
> Mac since FOP doesn't use the Mac's font system in case of 
> PDFs. If you have such a font simply follow the instruction 
> for custom fonts. HTH
> 
> > Thanks,
> > 
> > Patrick
> > 
> > 
> > On 9 mars 05, at 17:01, Jeremias Maerki wrote:
> > 
> > > Oops, sorry. Hmm, you've got a problem there. That's actually 
> > > something that would (in theory) be handled like this:
> > >
> > > <fo:inline font-family="Helvetica, ZapfDingbats">Some 
> text ÃËâ More 
> > > text</fo:inline>
> > >
> > > FOP should (again in theory) automatically switch to 
> ZapfDingbats if 
> > > Helvetica doesn't contain a character. The problem is that FOP 
> > > doesn't do that, yet.
> > >
> > > Working around this in XSLT is next to impossible (I 
> think), which 
> > > leaves a special preprocessor that inserts special fo:inlines as 
> > > necessary but in this case you could just as well try to 
> implement 
> > > that directly in FOP. It'll not be so simple.
> > >
> > > <fx type="head-scratching"/>
> > >
> > > On 09.03.2005 16:49:19 [EMAIL PROTECTED] wrote:
> > >> Hi,
> > >>
> > >> This is not really what I am trying to achieve. I know 
> that I can 
> > >> handle special characters using the ZapfDingbats font. 
> However what 
> > >> I don't know to do is parse a text content to encapsulate 
> > >> <fo:inline> element each time such a special character is found.
> > >>
> > >> So tranforming:
> > >>
> > >> "Some text ÃËâ More text"
> > >>
> > >> To:
> > >>
> > >> <fo:inline font-family="Helvetica"> Some text  <fo:inline 
> > >> font-family="ZapfDingbats">ÃËâ</fo:inline> More text </fo:inline>
> > >>
> > >>
> > >> Patrick
> > >>
> > >> On 9 mars 05, at 16:41, Jeremias Maerki wrote:
> > >>
> > >>> Lots of examples in the distribution, for example:
> > >>> 
> http://cvs.apache.org/viewcvs.cgi/xml-fop/examples/fo/basic/fonts.fo?
> > >>> rev=1.3&view=markup
> > >>>
> > >>> ...and in the documentation:
> > >>> http://xml.apache.org/fop/fo.html#xml-special-chars
> > >>>
> > >>>
> > >>> On 09.03.2005 10:21:11 [EMAIL PROTECTED] wrote:
> > >>>> Hi,
> > >>>>
> > >>>> I need to display in a pdf file some text that 
> contains different 
> > >>>> type of characters: some are ascii type but other are special 
> > >>>> ones like the 'star' or 'square' characters. I understand from 
> > >>>> what I have read that those special characters are not 
> available 
> > >>>> in the default Helvetica or Courier base font and that 
> I need to 
> > >>>> use the ZapfDingbats font.
> > >>>>
> > >>>> So what I need to achieve is transform the following 
> XML content:
> > >>>>
> > >>>> "Some text ÃâÂÃÅ More text"
> > >>>>
> > >>>> Into:
> > >>>>
> > >>>> <fo:inline font-family="Helvetica"> Some text  <fo:inline 
> > >>>> font-family="ZapfDingbats">ÃâÂÃÅ</fo:inline> More text 
> > >>>> </fo:inline>
> > >>>>
> > >>>>
> > >>>> How can this be done using XSL to create the proper FO 
> document 
> > >>>> knowing that I don't know in advance what the text to 
> translate 
> > >>>> looks like and how many 'special' characters it contains (ex
> > >>>> 'asdfÃâÂÃÅasÃâÂÃÂdfÃâÂÃÅasÃâÂÃÂdÃâÂÃâÃâÂÃâfasdÃâÂÃÅ')
> > >>>>
> > >>>> Thanks for any tips!
> > >>>>
> > >>>>
> > >>>> Patrick
> > >>>
> > >>>
> > >>>
> > >>> Jeremias Maerki
> > >>>
> > >>>
> > >>> 
> ------------------------------------------------------------------
> > >>> --- To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>> For additional commands, e-mail: [EMAIL PROTECTED]
> > >>>
> > >>
> > >>
> > >> 
> -------------------------------------------------------------------
> > >> -- To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >> For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > >
> > > Jeremias Maerki
> > >
> > >
> > > 
> --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> Jeremias Maerki
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

Reply via email to