OVH Cloud OVH Cloud

Filtrer les polices de symboles

21 réponses
Avatar
Bertrand Lenoir-Welter
Salut

Dans une énumération de polices, je cherche à filtrer les polices
symboliques (typiquement Wingdings, Webdings, Symbol, etc.).

Je récupère une structure LOGFONT dans la callback EnumFontFamProc(), et
je filtre sur lfCharSet==SYMBOL_CHARSET. Ca marche, mais malheureusement
je récupère aussi des polices alphabétiques classiques créées par des
abrutis qui leur ont bêtement collé le flag SYMBOL_CHARSET.

Question : y a-t-il un autre critère de filtrage ? Je suppose que non
puisque dans MS-Word je retrouve exactement la même liste pour les
"caractères spéciaux", mais on sait jamais... Si quelqu'un s'est déjà
frotté au problème, je suis preneur de sa solution. En échange, je donne
l'adresse d'un excellent site pour télécharger des milliers de symboles
et polices libres de droits : http://www.dafont.com

Merci d'avance pour tout tuyau même crevé.

10 réponses

1 2 3
Avatar
Arnold McDonald \(AMcD\)
Tu pourrais tester les paramètres retournés par exemple via
GetCharABCWidths(). Les valeurs retournées pour une fonte purement
alphabétique doivent pas être le smêmes que pour une fonte de symbols non ?
Enfin, à tester.

Voire GetTextMetrics() et mater les valeurs de la structure TEXTMETRICS
retournées. Je pense pas qu'en moyenne, une fonte alpha et une fonte symbol
aient les mêmes.

C'est sans doute un pneu crevé hein :(.

--
Arnold McDonald (AMcD) - Help #5 /2006

http://arnold.mcdonald.free.fr/
Avatar
Bertrand Lenoir-Welter
AMcD :

Tu pourrais tester les paramètres retournés par exemple via
GetCharABCWidths().



Non, ça colle pas. J'ai des polices alphabétiques avec jeux de
caractères limités aux seules lettres, et inversement des polices
symboliques ou tout le jeu de caractère est présent. C'est la jungle.


Voire GetTextMetrics() et mater les valeurs de la structure TEXTMETRICS
retournées. Je pense pas qu'en moyenne, une fonte alpha et une fonte symbol
aient les mêmes.



Malheureusement y'a trop d'exceptions. J'ai des polices alphabétiques
avec des caractères très fins ou très larges ou très complexes (genre
gothique), et inversement des polices symboliques avec des tailles de
matrices de caractères tout à fait dans la norme alphabétique. Bon, je
veux pas prendre le risque d'exclure une police symbolique ; je préfère
demander aux utilisateurs de virer leurs polices alphabétiques qui ont
le flag SYMBOL_CHARSET, si ça les dérange trop, en leur précisant que
c'est une bavure de la police. Sont pas très nombreuses de toute façon,
et tant pis.


C'est sans doute un pneu crevé hein :(.



Bah, merci quand même d'avoir essayé.

De toute façon, je parie que tout ça n'est même pas du standard
normalisé C++ isoportable, donc ça pouvait pas marcher. ;-)
Avatar
Arnold McDonald \(AMcD\)
M'ouais. De toute façon, si "quelque chose" n'impose pas à une fonte dite
Symbol d'avoir des spécificités obligatoires, uniques et sans ambiguité,
c'est quasi-impossible à résoudre ton truc.

De plus, encore faudrait-il que le scréateurs de fontes respectent ce
"quelque chose"... C'est à mon avis ça le point délicat d'ailleurs.

De toute façon, je parie que tout ça n'est même pas du standard
normalisé C++ isoportable, donc ça pouvait pas marcher. ;-)



Hin, hin, hin <- rire sarcasto-sardonique.

--
Arnold McDonald (AMcD)

http://arnold.mcdonald.free.fr/
Avatar
Arnold McDonald \(AMcD\)
Heu, à tout hasard, t'as fouillé là-dedans ?

http://www.microsoft.com/typography/default.mspx

--
Arnold McDonald (AMcD) - Help #6 /2006

http://arnold.mcdonald.free.fr/
Avatar
Bertrand Lenoir-Welter
AMcD :

Heu, à tout hasard, t'as fouillé là-dedans ?
http://www.microsoft.com/typography/default.mspx



Très intéressant par ailleurs, mais non j'y ai pas trouvé le filon.
J'espérais un petit miracle sans trop y croire et je laisse donc
tomber... Si même MS-Word filtre pareil que moi, on va pas être plus
royaliste que le roué.

Encore merci. Perds pas plus de temps pour moi.
Avatar
Arnold McDonald \(AMcD\)
Bertrand Lenoir-Welter wrote:

Perds pas plus de temps pour moi.



T'inquiète, tout ce qui me prends, allez, disons entre 3' et 5', j'y réponds
pas :-).

Cela étant ton problème est intéressant, mais amha, quasi-impossible à
résoudre. J'ai cherché un peu plus de 5' et rien ne stipule formellement ce
que "doit" être absolument une fonte symbol. Partant de là...

--
Arnold McDonald (AMcD)

http://arnold.mcdonald.free.fr/
Avatar
Bertrand Lenoir-Welter
AMcD :

rien ne stipule formellement ce que "doit" être absolument une fonte
symbol. Partant de là...



Tu serais pas en train de dire que ça manque de normalisation ?

A mon sens, une fonte symbolique doit contenir des graphiques sans ordre
(i.e. interchangeables) ou ne correspondant à aucun alphabet même vu de
très loin.
Avatar
Arnold McDonald \(AMcD\)
Bertrand Lenoir-Welter wrote:

Tu serais pas en train de dire que ça manque de normalisation ?



C'est dommage que je sois plonké, parce que j'aurai bien aimé l'avis des
chantres de la normalisation à ce sujet. Déçu je suis. Si, si.

--
Arnold McDonald (AMcD) - Help # /2006

http://arnold.mcdonald.free.fr/
Avatar
Sylvain Collange
AMcD a écrit :
C'est dommage que je sois plonké, parce que j'aurai bien aimé l'avis des
chantres de la normalisation à ce sujet. Déçu je suis. Si, si.



Cet avis, c'est que depuis une quinzaine d'années les polices sont
censées être Unicode, et qu'une police de symboles c'est une police qui
contient des caractères entre U+2000 et U+2FFF (à la hache).

Pour la question d'origine, à part l'OCR je vois pas trop comment on
pourrait faire pour reconnaitre une police qui a des symboles à la place
des lettres... (*)

Je verrais plutôt une blacklist déjà remplie par défaut avec les polices
foireuses connues et éventuellement modifiable par l'utilisateur.

(*) Avis du chantre de la normalisation : Unicode ne dit rien sur la
représentation des glyphes, donc si un créateur de police décide de
représenter les A par des flèches et les B par des smileys c'est son
problème.

--
Sylvain
Avatar
Arnold McDonald \(AMcD\)
Sylvain Collange wrote:

(*) Avis du chantre de la normalisation : Unicode ne dit rien sur la
représentation des glyphes, donc si un créateur de police décide de
représenter les A par des flèches et les B par des smileys c'est son
problème.



Oui. Mon ironie venait de là. Aucune norme n'empêchera quelqu'un de faire
comme il l'entend. Surtout un grand éditeur très riche qui, si les standards
ne lui conviennent pas, alors les ignorera et utilisera les siens.
Malheureusement, au détriment d'une simplicité et uniformisation générale,
c'est vrai.

Pour rajouter une couche sur mon antipathie des normes, je dirai que si rien
n'est prévu pour imposer des règles sur le sglyphes, ben c'est que la norme
est mal faite. Une vraie norme, à mon sens, se doit d'être indétournable.
Tout au moins, offrir des avantages tels qu'il est absolument idiot de ne
pas en profiter et donc, qu'il serait idiot de ne pas suivre.

--
Arnold McDonald (AMcD)

http://arnold.mcdonald.free.fr/
1 2 3