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

aet 发布于 2018-02-04 fonts 最后更新 2018-02-04 01:01 1168 浏览

我正在使用Photoshop的JavaScript API来查找给定的PSD中的字体。 给定API返回的字体名称,我想找到光盘上字体名称对应的实际物理字体文件。 这一切都发生在OSX上运行的Python程序,所以我想我正在寻找的一个:

  • 一些Photoshop JavaScript
  • 一个Python函数
  • 我可以从python调用的OSX API
已邀请:

jdolor

赞同来自:

打开一个终端(应用程序 - >实用程序 - >终端),然后输入:

locate InsertFontHere
这将吐出每个有你想要的名字的文件。 警告:可能有很多通过。

somnis

赞同来自:

我一直无法找到任何直接的。我想你必须遍历系统上的各种字体文件夹:/System/Library/Fonts/Library/Fonts~/Library/Fonts也可能有一个用户级目录。

oqui

赞同来自:

不幸的是,唯一不被弃用的API位于ApplicationServices框架中,该框架没有桥支持文件,因此在网桥中不可用。如果您想要使用ctypes,则可以在查找ATSFontRef后使用ATSFontGetFileReference。 Cocoa没有任何本地支持,至少从10.5开始,获取字体的位置。

ncum

赞同来自:

在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