47

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

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

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

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

4 回答 4

21

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

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

于 2008-08-06T03:01:23.890 回答
7

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

locate InsertFontHere

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

警告:可能有很多事情要经历。

于 2008-08-02T16:56:53.893 回答
6

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

于 2008-08-02T17:42:28.607 回答
5

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
于 2008-10-12T07:02:40.173 回答