代码之家  ›  专栏  ›  技术社区  ›  Gareth Simpson

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

  •  39
  • Gareth Simpson  · 技术社区  · 16 年前

    我使用photoshop的javascript api在给定的psd中查找字体。

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

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

    • 一些photoshop javascript
    • python函数
    • 我可以从python调用的OSX API
    4 回复  |  直到 8 年前
        1
  •  20
  •   Konamiman    16 年前

    不幸的是,唯一不推荐使用的API位于ApplicationServices框架中,该框架没有网桥支持文件,因此在网桥中不可用。如果要使用ctypes,可以在查找atsfontRef之后使用atsfontgetfilereference。

    Cocoa在获取字体位置方面没有任何本地支持,至少在10.5版本中没有。

        2
  •  9
  •   helloandre    16 年前

    打开终端(应用程序->实用程序->终端),然后在中键入:

    locate InsertFontHere
    

    这将显示所有具有您想要的名称的文件。

    警告:可能有很多需要涉水通过。

        3
  •  7
  •   Mohammad Faisal Reza    12 年前

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

        4
  •  6
  •   dbr    16 年前

    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