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

Translate

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

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

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

  • 一些Photoshop JavaScript
  • Python函数
  • 我可以从python调用的OSX API
This question and all comments follow the "Attribution Required."

所有的回答

Translate

不幸的是,唯一不被弃用的API位于ApplicationServices框架中,该框架没有网桥支持文件,因此在网桥中不可用。如果要使用ctypes,可以在查询ATSFontRef之后使用ATSFontGetFileReference。

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

来源
Translate

打开一个终端(Applications-> Utilities-> Terminal),然后在其中输入:

locate InsertFontHere

这将吐出每个具有所需名称的文件。

警告:可能有很多麻烦要解决。

来源
dbr
Translate

可可中必须有一个方法来获取字体列表,然后您必须使用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
来源
Translate

我还没有找到任何可以直接做到这一点的东西。我认为您必须遍历系统上的各种字体文件夹:/System/Library/Fonts, /Library/Fonts,也可能还有一个用户级目录~/Library/Fonts.

来源