Come posso trovare il percorso completo di un font dal suo nome di visualizzazione su un Mac?

voti
35

Sto usando API JavaScript del Photoshop per trovare i font in un dato PSD.

Dato un nome di carattere restituito da API, voglio trovare il file di carattere fisico che nome del font corrisponde sul disco.

Questo è tutto accade in un programma Python in esecuzione su OSX quindi credo che sto cercando uno di:

  • Alcuni Photoshop javascript
  • Una funzione Python
  • Un'API OSX che posso chiamare in pitone
È pubblicato 02/08/2008 alle 14:11
fonte dall'utente
In altre lingue...                            


4 risposte

voti
7

aprire un terminale (Applicazioni-> Utilities-> Terminale) e digitare questo in:

locate InsertFontHere

Questo sarà sputare fuori ogni file che ha il nome che si desidera.

Attenzione: non ci può essere molto da guadare attraverso.

Risposto il 02/08/2008 a 15:56
fonte dall'utente

voti
5

Non sono stato in grado di trovare tutto ciò che fa questo direttamente. Penso che si dovrà scorrere le varie cartelle di font sul sistema: /System/Library/Fonts, /Library/Fonts, e, probabilmente, non ci può essere una directory a livello utente pure ~/Library/Fonts.

Risposto il 02/08/2008 a 16:42
fonte dall'utente

voti
19

Purtroppo l'unico API che non è sconsigliata si trova nel quadro ApplicationServices, che non ha un file di supporto ponte, e quindi non è disponibile nel ponte. Se hai intenzione di usare ctypes, è possibile utilizzare ATSFontGetFileReference dopo aver guardato l'ATSFontRef.

Cacao non ha alcun supporto nativo, almeno a partire da 10,5, per ottenere la posizione di un carattere.

Risposto il 06/08/2008 a 02:01
fonte dall'utente

voti
5

Ci deve essere un metodo in Cocoa per ottenere un elenco di font, allora si dovrà utilizzare le associazioni PyObjC chiamarlo ..

A seconda di cosa hai bisogno di loro per, probabilmente si potrebbe semplicemente usare qualcosa di simile a quanto segue ..

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
Risposto il 12/10/2008 a 06:02
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more