Come posso ottenere il nome PostScript di un font TTF installato in OS X?

11

Ho un font TTF installato sul mio Mac che ho aggiunto a un progetto di sviluppo X-Code. Per la vita di me, non riesco a farlo funzionare con la mia applicazione, ma penso che sia perché sto usando il nome del font sbagliato.

Usando Libro Font o qualsiasi altro strumento, come posso ottenere il nome del font Postscript dai metadati dei font?

Ho la sensazione che Postscript name possa essere diverso da Font name , ma ho bisogno di verificare.

    
posta RLH 24.01.2013 - 18:14
fonte

2 risposte

14

Apri l'applicazione Libro Font . (Dovrebbe trovarsi nella cartella Applicazioni .)

Seleziona il carattere di cui hai bisogno per il nome Postscript.

Seleziona Mostra informazioni font dal menu Anteprima . (Oppure usa + i ).

    
risposta data 24.01.2013 - 21:06
fonte
5

La tua ipotesi è corretta. iOS richiede l'identificazione di un font in base al relativo nome Postscript (o Fullname), che non è sempre uguale al nome file effettivo del carattere .

Puoi ottenere il nome PostScript usando FontBook (come mostrato nella risposta accettata qui), ma ci sono altri modi.

Da direttamente all'interno di XCode, puoi estrarre il nome PostScript dai font installati del progetto tramite UIFont . È sufficiente eseguirlo per stampare i nomi PostScript dei font di progetto installati:

In Obiettivo-C ( fonte ):

for (NSString *fontFamilyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
        NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
    }
}

O Swift 3.0 ( fonte )

for familyName in UIFont.familyNames {
    for fontName in UIFont.fontNames(forFamilyName: familyName ) {
        print("\(familyName) : \(fontName)")
    }
}

O dal terminale , dall'interno della directory in cui sono presenti i file dei font, puoi eseguire questo script per stampare tutti i nomi PostScript dei font all'interno della directory corrente (utilizza fc-scan utilità da fontconfig che è già installato probalmente) ( fonte ):

for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done

Ecco uno screenshot del comando precedente in esecuzione sulla mia directory ~/Library/Fonts :

Loscriptprecedenteeseguiràtuttiifile.ttfe.otfnelladirectorycorrente,quindistamperàilNomePostScriptperognicaratterechepuoiutilizzareperfareriferimentoalfiledifontinXCodeoaltrove.

Sevuoiaverequalcheinformazioneaggiuntiva(PostScriptName,Filename)ealcunicolori,puoieseguirequestoscriptalternativo:

forfilein"$arg"*.{ttf,otf}; do 
    postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
    printf "3[36m PostScript Name:3[0m %s \e[90m(%s)3[0m\n" "$postscriptname" "$file";
done

Questo è un po 'più veloce del codice di copia-incolla all'interno del tuo file AppDelegate.m per stampare i nomi ogni volta che vuoi aggiungere un nuovo file di font, che è il metodo popolare, ed è anche più veloce dell'apertura del Font in FontBook per ispezionare il nome PostScript.

SUGGERIMENTO UTILE: se alias lo script sopra nel tuo terminale in modo che tutto ciò che devi fare è digitare un singolo comando per ottenere tutti i nomi dei font PostScript per tutti i file nella directory corrente, quindi risparmierai tempo nel tuo flusso di lavoro di sviluppo e tieni a portata di mano questo comodo script quando ne hai bisogno.

Spero che questo aiuti!

    
risposta data 07.03.2017 - 09:56
fonte

Leggi altre domande sui tag