Подтвердить что ты не робот

Как я могу найти полный путь к шрифту из его отображаемого имени на Mac?

Я использую javascript API Photoshop для поиска шрифтов в заданном PSD.

Учитывая имя шрифта, возвращаемое API, я хочу найти фактический файл физического шрифта, который соответствует названию шрифта на диске.

Это все происходит в программе python, работающей на OSX, поэтому я предполагаю, что я ищу один из:

  • Некоторые Photoshop javascript
  • Функция Python
  • API OSX, который я могу вызвать из python
4b9b3361

Ответ 1

К сожалению, единственный API, который не устарел, находится в структуре ApplicationServices, которая не имеет файла поддержки моста и, следовательно, недоступна на мосту. Если вы хотите использовать ctypes, вы можете использовать ATSFontGetFileReference после просмотра ATSFontRef.

Cocoa не имеет встроенной поддержки, по крайней мере, от 10.5 для получения местоположения шрифта.

Ответ 2

откройте терминал (Applications- > Utilities- > Terminal) и введите его в:

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

Ответ 5

В версии cadillac:

"""The first step is to create an SMTP object, each object is used for connection 
with one server."""

import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)

#Next, log in to the server
server.login("youremailusername", "password")

#Send the mail
msg = "
Hello!" # The /n separates the message from the headers
server.sendmail("[email protected]", "[email protected]", msg)