Я использую javascript API Photoshop для поиска шрифтов в заданном PSD.
Учитывая имя шрифта, возвращаемое API, я хочу найти фактический файл физического шрифта, которому соответствует имя шрифта на диске.
Все это происходит в программе Python, работающей на OSX, поэтому я думаю, что ищу одно из:
откройте терминал (Приложения-> Утилиты-> Терминал) и введите следующее:
locate InsertFontHere
Это выведет каждый файл с нужным вам именем.
Предупреждение: может быть многое, что нужно проделать.
Мне не удалось найти ничего, что могло бы делать это напрямую. Я думаю, вам придется перебирать различные папки шрифтов в системе: /System/Library/Fonts
, /Library/Fonts
, и, вероятно, также может быть каталог уровня пользователя ~/Library/Fonts
.
К сожалению, единственный API, который не является устаревшим, находится в платформе ApplicationServices, у которой нет файла поддержки моста, и поэтому он недоступен в мосте. Если вы хотите использовать ctypes, вы можете использовать ATSFontGetFileReference после поиска ATSFontRef.
Какао не имеет встроенной поддержки, по крайней мере, с версии 10.5, для получения местоположения шрифта.
В Какао должен быть метод для получения списка шрифтов, тогда вам нужно будет использовать привязки 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