Photoshop の JavaScript API を使用して、特定の PSD 内のフォントを検索しています。
API によって返されたフォント名を指定して、そのフォント名がディスク上で対応する実際の物理フォント ファイルを見つけたいと考えています。
これはすべて、OSX で実行されている python プログラムで発生しているため、次のいずれかを探していると思います。
- 一部の Photoshop JavaScript
- Python 関数
- Python から呼び出せる OSX API
残念ながら、廃止されていない唯一の API は ApplicationServices フレームワークにあり、これにはブリッジ サポート ファイルがないため、ブリッジでは使用できません。ctypes を使用したい場合は、ATSFontRef を検索した後で ATSFontGetFileReference を使用できます。
Cocoa には、少なくとも 10.5 の時点では、フォントの場所を取得するためのネイティブ サポートがありません。
ターミナルを開き (アプリケーション -> ユーティリティ -> ターミナル)、次のように入力します。
locate InsertFontHere
これにより、必要な名前を持つすべてのファイルが吐き出されます。
警告: 通り抜けなければならないことがたくさんあるかもしれません。
これを直接行うものを見つけることができませんでした。システム上のさまざまなフォント フォルダーを反復処理する必要が/System/Library/Fonts
ある/Library/Fonts
と思います:~/Library/Fonts
フォントのリストを取得するには、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