Comment puis-je trouver le chemin complet d’une police à partir de son nom d’affichage sur un Mac ?

StackOverflow https://stackoverflow.com/questions/469

  •  08-06-2019
  •  | 
  •  

Question

J'utilise l'API javascript de Photoshop pour rechercher les polices dans un PSD donné.

Étant donné un nom de police renvoyé par l'API, je souhaite trouver le fichier de police physique réel auquel le nom de police correspond sur le disque.

Tout cela se passe dans un programme Python exécuté sur OSX, donc je suppose que je recherche l'un des éléments suivants :

  • Un peu de javascript Photoshop
  • Une fonction Python
  • Une API OSX que je peux appeler depuis python
Était-ce utile?

La solution

Malheureusement, la seule API qui n'est pas obsolète se trouve dans le framework ApplicationServices, qui ne dispose pas de fichier de support de pont et n'est donc pas disponible dans le pont.Si vous souhaitez utiliser des ctypes, vous pouvez utiliser ATSFontGetFileReference après avoir recherché ATSFontRef.

Cocoa ne dispose d'aucun support natif, du moins depuis la version 10.5, pour obtenir l'emplacement d'une police.

Autres conseils

ouvrez un terminal (Applications->Utilitaires->Terminal) et tapez ceci :

locate InsertFontHere

Cela crachera tous les fichiers portant le nom souhaité.

Avertissement:il y aura peut-être beaucoup de choses à parcourir.

Il doit y avoir une méthode dans Cocoa pour obtenir une liste de polices, vous devrez alors utiliser les liaisons PyObjC pour l'appeler.

En fonction de ce dont vous avez besoin, vous pouvez probablement simplement utiliser quelque chose comme ce qui suit.

import os
def get_font_list():
    fonts = []
    for font_path in ["/Library/Fonts", os.path.expanduser("~/Library/Fonts")]:
        if os.path.isdir(font_path):
            fonts.extend(
                [os.path.join(font_path, cur_font) 
                 for cur_font in os.listdir(font_path)
                ]
            )
    return fonts

Je n'ai rien trouvé qui fasse cela directement.Je pense que vous devrez parcourir les différents dossiers de polices du système : /System/Library/Fonts, /Library/Fonts, et il peut probablement aussi y avoir un répertoire au niveau de l'utilisateur ~/Library/Fonts.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top