Pascal,

That is a great trick, thanks!

Patrick


On 9 mars 05, at 18:02, Pascal Sancho wrote:

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]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to