如何从Mac上的显示名称中找到字体的完整路径?

时间:2008-08-02 15:11:16

标签: python macos fonts photoshop

我正在使用Photoshop的JavaScript API来查找给定PSD中的字体。

鉴于API返回的字体名称,我想找到光盘上字体名称对应的实际物理字体文件。

这一切都发生在OSX上运行的python程序中,所以我想我正在寻找其中一个:

  • 一些Photoshop javascript
  • Python函数
  • 我可以从python
  • 调用的OSX API

4 个答案:

答案 0 :(得分:19)

不幸的是,唯一没有弃用的API位于ApplicationServices框架中,该框架没有桥接支持文件,因此在桥接器中不可用。如果您想使用ctypes,可以在查找ATSFontRef后使用ATSFontGetFileReference。

Cocoa没有任何原生支持,至少从10.5开始,用于获取字体的位置。

答案 1 :(得分:8)

打开一个终端(Applications-> Utilities-> Terminal)并输入:

locate InsertFontHere

这将吐出每个具有您想要名称的文件。

警告:可能会有很多趟过。

答案 2 :(得分:6)

我一直无法找到任何可以直接执行此操作的内容。我认为你必须遍历系统上的各种字体文件夹:/System/Library/Fonts/Library/Fonts,并且可能还有一个用户级目录~/Library/Fonts

答案 3 :(得分:6)

在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