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

Gareth Simpson 39 python photoshop macos fonts

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

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

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

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

NilObject.. 20

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

获取字体位置时,Cocoa没有任何本机支持,至少从10.5开始.


helloandre.. 9

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

locate InsertFontHere

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

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


用户甲.. 7

我一直无法找到任何直接这样做的东西.我认为你必须通过该系统上的各种字体文件夹重复:/System/Library/Fonts,/Library/Fonts,并有可能可以是用户级目录以及~/Library/Fonts.


dbr.. 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