【问题标题】:AppleScript - List all fontsAppleScript - 列出所有字体
【发布时间】:2013-03-29 02:14:11
【问题描述】:

我已经尝试了很长一段时间,但还没有找到一种有效的方法来做到这一点。目前我一直在尝试这样列出我知道的所有字体:

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

但是编写所有字体需要 forever,而且我知道 Mac 上有大量字体。有没有更高效的方法来获取系统上的所有字体,在一个文本文档中写一堆东西,然后将每一个连续行的字体设置为下一个字体(即第1行的字体是Font 1,第2行的字体是字体 2 等)?

【问题讨论】:

    标签: fonts applescript


    【解决方案1】:
     tell application "Font Book" to name of font families
    

    set l to {"Regular", "Roman", "Book", "Plain", "55 Roman", "R"}
    set found to {}
    tell application "Font Book"
        repeat with x in typefaces
            if l contains style name of x then set end of found to name of x
        end repeat
    end tell
    found
    

    【讨论】:

    • +1 因为看起来很令人惊讶,直到现在我才听说Font Book! :P
    【解决方案2】:

    您可以使用一个 unix 命令:system_profiler。 “SPFontsDataType”的数据类型将为您提供系统配置文件中的字体。 -xml 将以 XML 格式呈现数据。

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

    您可以在内存中或将其捕获到文件中,然后根据需要对其进行解析。

    【讨论】:

    • 播种另一个 shell 命令的完美方式:“mdls /path/to/font”,它将列出所有字体属性。
    【解决方案3】:

    你说得对,Mac OS X 有很多字体。这些字体通过四个或更多文件夹分发,具体取决于软件安装和计算机上的用户帐户数量。

    +1 你的问题,因为我一直在尝试做同样的事情,所以我编写了一个小脚本来完成这项工作。它从四个/五个不同的位置提取字体,写入文本文档,然后更改字体。但是,当您运行它时,您的系统可能会开始滞后(就像我刚才所做的那样)。但是延迟是值得的!这是脚本:

    --"获取系统上的所有字体"
    
    显示对话框“警告”&返回&返回&“此脚本可能会导致您的计算机滞后。您确定要继续使用字体采样器吗?”图标谨慎
    将 font_folders 设置为 {"/Users/" & (system info) & "/Library/Fonts/", "/Library/Fonts/", "/Network/Library/Fonts/", "/System 的短用户名/Library/Fonts/", "/系统文件夹/Fonts/"}
    将这些字体设置为 {}
    在 font_folders 中重复 this_font_folder
        尝试
            告诉应用程序“Finder”将这些字体的结尾设置为((this_font_folder as POSIX file)的每个项目作为别名)
        结束尝试
    结束重复
    
    --“在文本文档中写一堆东西”
    
    告诉应用程序“TextEdit”
        启用
        将前窗的缩放设置为 true
        将前窗口的名称设置为“Font Sampler”
    结束告诉
    在 these_fonts 中用 this_font 重复
        告诉应用程序“Finder”将 this_font 设置为 this_font 的名称
        告诉应用程序 "TextEdit" 将文档 1 的文本设置为文档 1 的文本 & this_font & ": 快速棕色狐狸跳过懒狗。" & 返回
    结束重复
    
    --"将每一个连续行的字体设置为下一个字体(即第1行的字体为Font 1,第2行的字体为Font 2等)"
    
    重复 i 从 1 到 these_fonts 的计数
        告诉应用程序“Finder”将 this_font 设置为 these_fonts 的项目 i 的名称
        告诉应用程序“TextEdit”告诉文档 1 文本的第 i 段将字体设置为 this_font
    结束重复
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多