Hvordan kan jeg finne den fullstendige banen til en skrift fra sin visningsnavnet på en Mac?

stemmer
37

Jeg bruker Photoshop javascript API for å finne de skriftene i en gitt PSD.

Gitt et skriftnavn returnert av API, ønsker jeg å finne den faktiske fysiske font fil som skriftnavnet tilsvarer på platen.

Dette er alt som skjer i en python program som kjører på OSX så jeg antar jeg leter etter en av:

  • Noen Photoshop javascript
  • En Python funksjon
  • En OSX API som jeg kan ringe fra python
Publisert på 02/08/2008 klokken 15:11
kilden bruker
På andre språk...                            


4 svar

stemmer
20

Dessverre er den eneste API som er ikke avviklet er plassert i ApplicationServices rammeverk, som ikke har en bru-fil, og er derfor ikke tilgjengelig i broen. Hvis du ønsker å bruke ctypes, kan du bruke ATSFontGetFileReference etter å ha sett opp ATSFontRef.

Kakao har ikke noen innebygd støtte, minst like på 10,5, for å få plasseringen av en font.

Svarte 06/08/2008 kl. 03:01
kilden bruker

stemmer
9

åpne opp en terminal (Applications> Utilities-> Terminal) og skriver denne inn:

locate InsertFontHere

Dette vil spytte ut hver fil som har navnet du ønsker.

Advarsel: det kan være mye å vasse gjennom.

Svarte 02/08/2008 kl. 16:56
kilden bruker

stemmer
7

Jeg har ikke vært i stand til å finne noe som gjør dette direkte. Jeg tror du må iterere gjennom ulike skriftmapper på systemet: /System/Library/Fonts, /Library/Fontsog det kan sikkert være en brukernivå katalog samt ~/Library/Fonts.

Svarte 02/08/2008 kl. 17:42
kilden bruker

stemmer
6

Det må være en metode i Cocoa å få en liste over skrifter, så du må bruke PyObjC bindingene å kalle det ..

Avhengig av hva du trenger dem for, kan du sannsynligvis bare bruke noe sånt som følgende ..

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
Svarte 12/10/2008 kl. 07:02
kilden bruker

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