Vra

Ek gebruik die Photoshop se javascript API om die lettertipes in 'n gegewe PSD te vind.

Gegewe 'n fontnaam wat deur die API teruggestuur word, wil ek die werklike fisiese fontlêer vind waarmee die fontnaam ooreenstem op die skyf.

Dit gebeur alles in 'n python-program wat op OSX loop, so ek dink ek soek een van:

  • Sommige Photoshop-javascript
  • 'n Python-funksie
  • 'n OSX API wat ek vanaf python kan bel
Was dit nuttig?

Oplossing

Ongelukkig is die enigste API wat nie opgeskort is nie, geleë in die ApplicationServices-raamwerk, wat nie 'n brugondersteuningslêer het nie, en dus nie in die brug beskikbaar is nie.As jy ctypes wil gebruik, kan jy ATSFontGetFileReference gebruik nadat jy die ATSFontRef opgesoek het.

Kakao het geen inheemse ondersteuning nie, ten minste vanaf 10.5, om die ligging van 'n lettertipe te kry.

Ander wenke

maak 'n terminaal oop (Toepassings-> Hulpprogramme-> Terminal) en tik dit in:

locate InsertFontHere

Dit sal elke lêer uitspoeg wat die naam het wat jy wil hê.

Waarskuwing:daar kan baie wees om deur te waad.

Daar moet 'n metode in Cocoa wees om 'n lys van lettertipes te kry, dan sal jy die PyObjC-bindings moet gebruik om dit te noem..

Afhangende van waarvoor jy dit nodig het, kan jy waarskynlik net iets soos die volgende gebruik.

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

Ek kon niks vind wat dit direk doen nie.Ek dink jy sal deur die verskillende fontvouers op die stelsel moet herhaal: /System/Library/Fonts, /Library/Fonts, en daar kan waarskynlik ook 'n gebruikersvlakgids wees ~/Library/Fonts.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top