如何在Mac上从显示名称中找到字体的完整路径?
时间:2020-03-05 18:37:21 来源:igfitidea点击:
我正在使用Photoshop的javascript API在给定的PSD中查找字体。
给定API返回的字体名称,我想在光盘上找到该字体名称对应的实际物理字体文件。
这都是在OSX上运行的python程序中发生的,所以我想我正在寻找以下之一:
一些Photoshop javascript A Python函数我可以从python调用的OSX API
解决方案:
打开一个终端("应用程序"->"实用程序"->"终端"),然后在其中输入以下内容:
locate InsertFontHere
这将吐出每个具有所需名称的文件。
警告:可能有很多麻烦要解决。
我还没有找到任何可以直接做到这一点的东西。我认为我们必须遍历系统上的各种字体文件夹:/ System / Library / Fonts
,/ Library / Fonts
,并且可能还有用户级目录以及~~ / Library /字体`。
不幸的是,唯一不被弃用的API位于ApplicationServices框架中,该框架没有网桥支持文件,因此在网桥中不可用。如果要使用ctypes,则可以在查询ATSFontRef之后使用ATSFontGetFileReference。
至少从10.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