2008-08-02 35 views
35

Tôi đang sử dụng API javascript của Photoshop để tìm các phông chữ trong một PSD nhất định.Tôi làm cách nào để tìm đường dẫn đầy đủ tới một phông chữ từ tên hiển thị trên máy Mac?

Đặt tên phông chữ được API trả lại, tôi muốn tìm tệp phông chữ vật lý thực tế mà tên phông chữ tương ứng với trên đĩa.

này được tất cả xảy ra trong một chương trình python chạy trên OSX vì vậy tôi đoán tôi đang tìm kiếm một trong số:

  • Một số Photoshop javascript
  • Một Python chức năng
  • Một OSX API mà tôi có thể gọi từ python

Trả lời

19

Rất tiếc, API duy nhất không được dùng nữa nằm trong khung ApplicationServices, không có tệp hỗ trợ cầu và do đó không có sẵn trong cầu. Nếu bạn muốn sử dụng ctypes, bạn có thể sử dụng ATSFontGetFileReference sau khi tra cứu ATSFontRef.

Ca cao không có bất kỳ hỗ trợ gốc nào, ít nhất là 10.5, để nhận vị trí phông chữ.

7

mở cửa sổ terminal (ứng dụng-> Utilities-> terminal) và gõ này trong:

locate InsertFontHere 

Điều này sẽ nhổ ra mọi tệp có tên bạn muốn.

Cảnh báo: có thể có rất nhiều thông tin.

5

Tôi chưa thể tìm thấy bất kỳ điều gì thực hiện việc này trực tiếp. Tôi nghĩ bạn sẽ phải lặp qua các thư mục phông chữ khác nhau trên hệ thống: /System/Library/Fonts, /Library/Fonts và có thể cũng có thể là thư mục cấp người dùng cũng như ~/Library/Fonts.

5

Có phải là một phương pháp trong Cocoa để có được một danh sách các phông chữ, sau đó bạn sẽ phải sử dụng các ràng buộc PyObjC để gọi nó ..

Tùy thuộc vào những gì bạn cần cho họ, bạn có thể có thể chỉ cần sử dụng một cái gì đó như sau ..

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