Come posso trovare il percorso completo di un carattere dal suo nome visualizzato su un Mac?
Domanda
Sto utilizzando l'API JavaScript di Photoshop per trovare i caratteri in un determinato PSD.
Dato il nome di un carattere restituito dall'API, voglio trovare il file di carattere fisico effettivo a cui corrisponde il nome del carattere sul disco.
Tutto questo sta accadendo in un programma Python in esecuzione su OSX quindi immagino che sto cercando uno di:
- Alcuni JavaScript di Photoshop
- Una funzione Python
- Un'API OSX che posso chiamare da Python
Soluzione
Sfortunatamente l'unica API che non è deprecata si trova nel framework ApplicationServices, che non dispone di un file di supporto del bridge e quindi non è disponibile nel bridge.Se desideri utilizzare i ctypes, puoi utilizzare ATSFontGetFileReference dopo aver cercato ATSFontRef.
Cocoa non ha alcun supporto nativo, almeno a partire dalla versione 10.5, per ottenere la posizione di un carattere.
Altri suggerimenti
apri un terminale (Applicazioni->Utilità->Terminale) e digita questo:
locate InsertFontHere
Questo sputerà fuori ogni file che ha il nome che desideri.
Avvertimento:potrebbe esserci molto da superare.
Deve esserci un metodo in Cocoa per ottenere un elenco di caratteri, quindi dovresti usare i collegamenti PyObjC per chiamarlo..
A seconda dello scopo per cui ti servono, probabilmente potresti semplicemente usare qualcosa di simile al seguente..
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
Non sono riuscito a trovare nulla che lo faccia direttamente.Penso che dovrai scorrere le varie cartelle di caratteri sul sistema: /System/Library/Fonts
, /Library/Fonts
, e probabilmente può esserci anche una directory a livello di utente ~/Library/Fonts
.