我正在使用Photoshop的JavaScript API來查找給定PSD中的字體。如何從Mac上的顯示名稱找到字體的完整路徑?
給定API返回的字體名稱,我想查找光盤上字體名稱對應的實際物理字體文件。
這一切發生在OSX上運行的Python程序,所以我想我在尋找一個:
- 一些Photoshop中的JavaScript
- Python函數
- 的OSX API,我可以從蟒調用
我正在使用Photoshop的JavaScript API來查找給定PSD中的字體。如何從Mac上的顯示名稱找到字體的完整路徑?
給定API返回的字體名稱,我想查找光盤上字體名稱對應的實際物理字體文件。
這一切發生在OSX上運行的Python程序,所以我想我在尋找一個:
不幸的是,未棄用的唯一API位於ApplicationServices框架中,該框架沒有橋支持文件,因此在網橋中不可用。如果您想使用ctypes,則可以在查找ATSFontRef後使用ATSFontGetFileReference。
Cocoa沒有任何本地支持,至少從10.5開始獲取字體的位置。
打開一個終端(應用程序 - >實用程序 - >終端)和在輸入:
locate InsertFontHere
這將吐出每個有你想要的名字的文件。
警告:可能有很多要通過。
我一直沒找到能直接做到這一點的東西。我想你必須遍歷系統上的各種字體文件夾:/System/Library/Fonts
,/Library/Fonts
,並且可能還有用戶級目錄~/Library/Fonts
。
必須有可可的方法來獲得字體的列表,那麼你就必須使用PyObjC綁定稱之爲..
根據你需要他們爲了什麼,你很可能只是使用的東西像下面那樣..
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