我正在使用Photoshop的JavaScript API来查找给定PSD中的字体。
给定API返回的字体名称,我想找到光盘上字体名称对应的实际物理字体文件。
这一切都发生在OSX上运行的python程序中,所以我想我正在寻找一个:
- 一些Photoshop的JavaScript
- 一个Python函数
- 我可以从python调用的OSX API
最后发布: 2008-08-02 15:11:16
我正在使用Photoshop的JavaScript API来查找给定PSD中的字体。
给定API返回的字体名称,我想找到光盘上字体名称对应的实际物理字体文件。
这一切都发生在OSX上运行的python程序中,所以我想我正在寻找一个:
遗憾的是,唯一未弃用的API位于ApplicationServices框架中,该框架没有桥接支持文件,因此在桥接器中不可用。 如果您想使用ctypes,可以在查找ATSFontRef后使用ATSFontGetFileReference。
获取字体位置时,Cocoa没有任何本机支持,至少从10.5开始。
打开一个终端(Applications-> Utilities-> Terminal)并输入:
locate InsertFontHere
这将吐出每个具有您想要名称的文件。
警告:可能会有很多趟过。
在Cocoa中必须有一个方法来获取字体列表,然后你必须使用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
我一直无法找到任何直接这样做的东西。 我想你将不得不遍历系统上的各种字体文件夹: /System/Library/Fonts
, /Library/Fonts
,并且可能还有一个用户级目录~/Library/Fonts
。