¿Cómo puedo encontrar la ruta completa a una fuente a partir de su nombre para mostrar en una Mac?

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

  •  08-06-2019
  •  | 
  •  

Pregunta

Estoy usando la API de JavaScript de Photoshop para encontrar las fuentes en un PSD determinado.

Dado un nombre de fuente devuelto por la API, quiero encontrar el archivo de fuente físico real al que corresponde ese nombre de fuente en el disco.

Todo esto sucede en un programa Python que se ejecuta en OSX, así que supongo que estoy buscando uno de:

  • Algunos javascript de Photoshop
  • Una función de Python
  • Una API de OSX a la que puedo llamar desde Python
¿Fue útil?

Solución

Desafortunadamente, la única API que no está en desuso se encuentra en el marco ApplicationServices, que no tiene un archivo de soporte de puente y, por lo tanto, no está disponible en el puente.Si desea utilizar ctypes, puede utilizar ATSFontGetFileReference después de buscar ATSFontRef.

Cocoa no tiene ningún soporte nativo, al menos a partir de la versión 10.5, para obtener la ubicación de una fuente.

Otros consejos

abra una terminal (Aplicaciones->Utilidades->Terminal) y escriba esto:

locate InsertFontHere

Esto generará todos los archivos que tengan el nombre que desea.

Advertencia:Puede que haya mucho que recorrer.

Debe haber un método en Cocoa para obtener una lista de fuentes, luego tendrías que usar los enlaces PyObjC para llamarlo.

Dependiendo de para qué los necesite, probablemente podría usar algo como lo siguiente.

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

No he podido encontrar nada que haga esto directamente.Creo que tendrás que recorrer las distintas carpetas de fuentes del sistema: /System/Library/Fonts, /Library/Fonts, y probablemente también pueda haber un directorio a nivel de usuario ~/Library/Fonts.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top