Discussion:
encodages
(trop ancien pour répondre)
Tom
2006-07-26 08:54:35 UTC
Permalink
Salut,

J'ai fait un programme postscript pour me générer une « image de fonte
». Le principe : je lui donne une liste de caractères et il m'affiche un
tableau de 16 colonnes, avec chaque lettre centrée dans la colonne.
C'est pour générer un bitmap pour faire des polices que je charge en
openGL plus tard.

Bref mon problème c'est les caractères accentués : ils en sont pas
affichés, ou affichent n'importe quoi. Alors y a-t-il un moyen de
spécifier l'encodage ?

Pour info voici mon source :

%!PS-Adobe EPSF-3.0
%%Pages:1
%%BoundingBox: 0 0 320 210
%%EndComments

/fontsize 20 def
/space 10 def

/letters
(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
àâäéè^ëîïôöùûüÿç\050\051{}[]+-/*=,.:.!?<>'#\"~@_\\°) def

/Helvetica findfont
fontsize scalefont setfont

gsave
0 1 letters length 1 sub
{
/ii exch def
fontsize ii 16 mod mul
fontsize letters ii 1 getinterval stringwidth pop sub 2 div add
letters length 16 idiv fontsize space add mul
fontsize ii 16 idiv 1 sub fontsize space add mul add sub
moveto
letters ii 1 getinterval show
} for
grestore

% showpage
%%Trailer
% end
% userdict /end-hook known{end-hook}if
%%EOF
--
Tom
François Robert
2006-07-31 15:51:42 UTC
Permalink
ils en sont pas affichés, ou affichent n'importe quoi.
Alors y a-t-il un moyen de spécifier l'encodage ?
Oui.
Il faut procéder au 'recodage' de la police, ce qui veut dire
construire/spécifier la table nommée Encoding dans le dictionnaire
de la fonte.
C'est expliqué en détail dans le manuel de référence du PS,
paragraphe 5.9.1 "Changing the encoding vector"

Par example :

/Helvetica findfont
dup length dict begin
{
1 index /FID ne { def}{ pop pop} ifelse
} forall

/Encoding ISOLatin1Encoding def % ou une table personnalisée...
currentdict end
/Helvetica2 exch definefont

20 scalefont
setfont

10 10 moveto
(\304) show % A dieresis
(\313) show % E dieresis
(\317) show % I dieresis
(\326) show % O dieresis
(\334) show % U dieresis

showpage


_______________________________________________________
François Robert
(to mail me, reverse character order in reply address)
Tom
2006-08-06 17:08:57 UTC
Permalink
Post by François Robert
Oui.
Il faut procéder au 'recodage' de la police, ce qui veut dire
construire/spécifier la table nommée Encoding dans le dictionnaire
de la fonte.
C'est expliqué en détail dans le manuel de référence du PS,
paragraphe 5.9.1 "Changing the encoding vector"
...
Merci beaucoup, c'est exactement ce qu'il me fallait. :-)
--
Tom
Loading...