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