2011-08-11 17 views
8

私はかなり長い間これをやろうとしてきており、効率的なやり方を見つけていません。AppleScript - すべてのフォントを一覧表示

set the font_list to {"Arial","Comic Sans MS","Arial Black",...} 

をしかし、それはすべてのフォントを書くために永遠にを取り、私は、Mac上のフォントのトンがあることを知っている:現在、私は、私はこのように知っているすべてのフォントを一覧表示しようとしてきました。システム上のすべてのフォントを取得し、テキストドキュメントにたくさんのものを書き込んだり、連続する各行のフォントを次のフォントに設定したりするより効率的な方法がありますか(つまり、Line 1のフォントはFont 1、Line 2のフォントフォント2など)?

答えて

1

Mac OS Xにはたくさんのフォントが含まれている点は間違いありません。これらのフォントは、ソフトウェアのインストールとコンピュータのユーザーアカウントの数によって、4つ以上のフォルダに分散されます。

+1私は同じことをしようとしていたので、私は仕事をする小さなスクリプトを作った。それは4つか5つの異なる場所からフォントを引っ張り、テキスト文書に書き込んだ後にフォントを変更します。しかし、あなたがそれを実行すると、あなたのシステムは遅れて開始するかもしれません(私が数分前にしたように)。しかし、遅れはそれに値する!

--"get all the fonts on the system" 

display dialog "WARNING" & return & return & "This script may cause your computer to lag. Are you sure you want to proceed with the font sampler?" with icon caution 
set the font_folders to {"/Users/" & the short user name of (system info) & "/Library/Fonts/", "/Library/Fonts/", "/Network/Library/Fonts/", "/System/Library/Fonts/", "/System Folder/Fonts/"} 
set these_fonts to {} 
repeat with this_font_folder in the font_folders 
    try 
     tell application "Finder" to set the end of these_fonts to every item of ((this_font_folder as POSIX file) as alias) 
    end try 
end repeat 

--"write a bunch of stuff in a text document" 

tell application "TextEdit" 
    activate 
    set zoomed of the front window to true 
    set the name of the front window to "Font Sampler" 
end tell 
repeat with this_font in these_fonts 
    tell application "Finder" to set this_font to the name of this_font 
    tell application "TextEdit" to set the text of document 1 to the text of document 1 & this_font & ": The quick brown fox jumps over the lazy dog." & return 
end repeat 

--"set the font of each consecutive line to the next font (i.e. Line 1's font is Font 1, Line 2's font is Font 2, etc.)" 

repeat with i from 1 to the count of these_fonts 
    tell application "Finder" to set this_font to the name of item i of these_fonts 
    tell application "TextEdit" to tell paragraph i of the text of document 1 to set the font to this_font 
end repeat 
3
tell application "Font Book" to name of font families 

​​
+0

+1これは驚くように、今まで「フォントブック」について聞いたことがないからです! :P – fireshadow52

+0

これは正しい答えとしてマークする必要があります! –

2

使用できるUNIXコマンドがあります:system_profilerここではスクリプトです。 "SPFontsDataType"のデータ型は、システムプロファイルからフォントを取得します。 -xmlはデータをXMLで表示します。

system_profiler -xml SPFontsDataType > ~/Desktop/myfonts.plist 

これをメモリまたはファイルに取り込み、必要な目的に応じて解析することができます。

+0

別のシェルコマンド: "mdls/path/to/font"をシードする完璧な方法は、すべてのフォントプロパティをリストします。 – Orwellophile

関連する問題