如何获得OS X中安装的TTF字体的PostScript名称?


16

我的Mac上安装了TTF字体,该字体已添加到X-Code开发项目中。为了我的一生,我无法使其与我的应用程序一起使用,但是我认为这是因为我使用了错误的字体名称。

使用Font Book或任何其他工具,如何从字体元数据中获取Postscript字体名称?

我有预感,Postscript name可能与有所不同Font name,但我需要验证。

Answers:


24

打开字体书应用程序。(它应该在您的“ 应用程序”文件夹中。)

选择所需的脚本名称的字体。

预览菜单中选择显示字体信息。(或使用+ )。i

屏幕截图:fontbook字体信息


7

您的假设是正确的。iOS要求您根据其Postscript名称(或全名)来识别一种字体,该名称并不总是与该字体的实际Filename相同

您可以使用FontBook获得PostScript名称(如此处的接受答案所示),但是还有其他方法。

您可以直接在XCode内部通过来从项目的已安装字体中提取PostScript名称UIFont。只需运行此命令即可打印已安装项目字体的PostScript名称:

Objective-C中):

for (NSString *fontFamilyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) {
        NSLog(@"Family: %@ Font: %@", fontFamilyName, fontName);
    }
}

Swift 3.0来源

for familyName in UIFont.familyNames {
    for fontName in UIFont.fontNames(forFamilyName: familyName ) {
        print("\(familyName) : \(fontName)")
    }
}

或者在终端上,从拥有字体文件的目录中,运行此脚本以打印当前目录中所有字体的PostScript名称(使用可能已经安装的fontconfig中的fc-scan实用程序)():

for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done

这是在我的~/Library/Fonts目录中运行的上述命令的屏幕截图:

在此处输入图片说明

上面的脚本将遍历当前目录中的所有.ttf.otf文件,然后为每种字体打印出PostScript名称,可用于在XCode或其他地方引用字体文件。

如果您想了解一些其他信息(PostScriptName,Filename)和一些颜色编码,则可以运行以下替代脚本:

for file in "$arg"*.{ttf,otf}; do 
    postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
    printf "\033[36m PostScript Name:\033[0m %s \e[90m(%s)\033[0m\n" "$postscriptname" "$file";
done

在此处输入图片说明

这比每次要添加新字体文件时打印名称的AppDelegate.m文件内部的复制粘贴代码要快一点,这是一种流行的方法,它也比在FontBook中打开Font来更快。检查PostScript名称。

有用的提示:如果您在终端中为上述脚本添加别名,那么您只需键入一个命令即可获取当前目录中所有文件的所有PostScript字体名称,那么您将节省开发时间,并在需要时准备好使用此方便的脚本。

希望这可以帮助!


2

遇到了一个稍微不同的用例,我认为我应该与他人分享:

我购买和下载的字体文件仅限于应用程序使用。我通常使用FontBook(如接受的答案)来获取PostScript名称。但是,由于应用程序使用限制,我无法将字体导入FontBook。

对我有用的是右键单击字体文件,然后选择“获取信息”。“常规”选项卡下“全名”字段中的值对我有用,似乎是PostScript名称。使用我肯定知道的PostScript名称的其他几个字体文件对此进行了验证。

简单,无需打开另一个应用程序。


0

您可以使用FontDrop

一个很棒的在线工具,可让您从字体文件中提取信息

将字体文件拖放到可放置区域:

在此处输入图片说明

滚动一点,然后选择“数据”标签:

在此处输入图片说明

您将在属性名称“ postScriptName”下找到字体的脚本名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.