Hoe kan ik het volledige pad naar een lettertype van het display naam op een Mac te vinden?

stemmen
35

Ik ben met behulp van javascript de API van de Photoshop om de lettertypen in een bepaalde PSD vinden.

Gegeven een lettertype naam geretourneerd door de API, wil ik de fysieke font-bestand dat lettertype naam overeenkomt met op de schijf te vinden.

Dit gebeurt allemaal in een python programma draaien op OSX, dus ik denk dat ik ben op zoek naar een van:

  • Sommige Photoshop javascript
  • Een functie Python
  • Een OSX API die ik kan bellen vanuit python
De vraag is gesteld op 02/08/2008 om 16:11
bron van user
In andere talen...                            


4 antwoorden

stemmen
7

het openen van een terminal (Applicaties-> Utilities-> Terminal) en typ dit in:

locate InsertFontHere

Dit zal uitspugen elk bestand dat de gewenste naam heeft.

Let op: er kan veel te doorspitten.

antwoordde op 02/08/2008 om 17:56
bron van user

stemmen
5

Ik heb niet in staat om iets dat dit direct doet vinden. Ik denk dat je zult moeten doorlopen van de verschillende lettertype mappen op het systeem: /System/Library/Fonts, /Library/Fonts, en er kan waarschijnlijk een gebruiker-level directory zo goed ~/Library/Fonts.

antwoordde op 02/08/2008 om 18:42
bron van user

stemmen
19

Helaas is de enige API die niet is verouderd is gelegen in het betrokkensoftware kader, dat niet een brug ondersteuning bestand heeft, en is dus niet beschikbaar in de brug. Als je wil ctypes gebruiken, kunt u ATSFontGetFileReference gebruiken na het opzoeken van de ATSFontRef.

Cacao heeft geen native ondersteuning, althans van 10,5, voor het krijgen van de locatie van een lettertype.

antwoordde op 06/08/2008 om 04:01
bron van user

stemmen
5

Er moet een methode in Cocoa om een ​​lijst van fonts te krijgen, dan zou je de PyObjC bindingen gebruiken om het te noemen ..

Afhankelijk van wat je ze nodig hebt voor, zou je waarschijnlijk gewoon gebruik maken van iets als het volgende ..

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
antwoordde op 12/10/2008 om 08:02
bron van user

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