2009-10-23 3 views
2

J'essaye d'écrire une visionneuse de police pour les polices TrueType/OpenType avec le code VB6/VB5 (sous Windows).l'écriture d'une visionneuse de police - obtention des propriétés de police, chargement ttf dynamique

il est étonnamment difficile:

1) VB/WinAPI, je n'ai pas trouvé comment extraire le nom de la police ou les propriétés de police en général. 2) Je peux installer la police (en utilisant la fonction API AddFontResource), mais je dois ensuite la désinstaller. Cependant, alors que (AddFontResource » attend un chemin , en supprimant la police nécessite nom qui est inconnu pour moi de la police.

est-il un moyen d'utiliser une TTF de police non installé)?

est il un moyen d'extraire à l'aide VB6?

propriétés d'une police (je peux écrire le programme en wxPython mais je sais encore moins sur les polices en python qu'avec VB)

Répondre

0

Il en effet est plus. J'ai fait face au même problème moi-même (voir mon question). J'ai fini par écrire mon propre analyseur parce que j'avais besoin de détecter si la police était corrompue ou pas. Il y a une fonction qui AddFontMemResourceEx:

Lorsque la fonction réussit, l'appelant de cette fonction peut libérer la mémoire pointée par pbFont parce que le système a sa propre copie de la mémoire. Pour supprimer les polices installées, appelez RemoveFontMemResourceEx. Toutefois, lorsque le processus disparaît, le système va décharger les polices même si le processus n'a pas appelé RemoveFontMemResource.

De plus, vous pouvez utiliser le Font and Text Functions pour obtenir les métriques de police.

1

Vous pouvez utiliser le FreeType library.

+0

+1. Une compatibilité beaucoup plus agréable et potentiellement multi-plateforme que de gérer les polices installées natives. Fait également pour une application beaucoup plus utile! Il existe une liaison Python appelée ft2 disponible qui s'appelle elle-même qualité bêta; Personnellement, j'ai utilisé FreeType via PIL avant avec un certain succès, mais c'est certainement un sous-ensemble limité de fonctionnalités, probablement pas assez pour un utilitaire de visionneuse de polices. Je ne sais pas pour VB6, mais je ne voudrais pas vraiment écrire quoi que ce soit en classique-VB ces jours-ci. – bobince

Questions connexes