Como posso encontrar o caminho completo para um tipo de letra de seu nome de exibição em um Mac?

StackOverflow https://stackoverflow.com/questions/469

  •  08-06-2019
  •  | 
  •  

Pergunta

Eu estou usando o Photoshop, javascript API para encontrar as fontes em um determinado PSD.

Dado um nome de tipo de letra retornado pela API, eu quero encontrar o real físico ficheiro de tipo de letra que o nome de tipo de letra corresponde a no disco.

Isso tudo acontece em um programa python em execução no OSX, então eu acho que eu estou procurando um:

  • Alguns Photoshop javascript
  • Uma função em Python
  • Uma OSX API que eu posso chamar de python
Foi útil?

Solução

Infelizmente, a única API que não é preterido está localizado no ApplicationServices quadro, que não tem uma ponte de ficheiro de suporte, e, portanto, não está disponível na ponte.Se você está querendo usar ctypes, você pode usar ATSFontGetFileReference após o ATSFontRef.

Cacau não tem suporte nativo, no mínimo, como de 10,5, para obter a localização de uma fonte.

Outras dicas

abra um terminal (Aplicativos->Utilitários->Terminal) e digitar:

locate InsertFontHere

Isto irá mandar todos os arquivos que tem o nome que você quiser.

Aviso:pode haver muito a percorrer.

Deve haver um método de Cacau para obter uma lista de tipos de letra e, em seguida, você teria que usar o PyObjC ligações para chamá-lo..

Dependendo do que você precisar deles, você provavelmente poderia apenas usar algo como o seguinte..

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

Eu não tenho sido capaz de encontrar qualquer coisa que faz isso diretamente.Eu acho que você vai ter para iterar através de várias pastas do tipo de letra no sistema: /System/Library/Fonts, /Library/Fonts, e não pode, provavelmente, ser um usuário de diretório de nível bem ~/Library/Fonts.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top