已安装的字体列表OS X / C(List of installed fonts OS X / C)

2019-07-30 01:41发布

我试图以编程方式获得C或Python中已安装的字体列表。 我需要能够做到这一点在OS X上,没有人知道如何?

Answer 1:

用Python PyObjC安装(这是Mac OS X 10.5以上版本的情况下,所以这个代码将无需安装任何工作):

import Cocoa
manager = Cocoa.NSFontManager.sharedFontManager()
font_families = list(manager.availableFontFamilies())

(基于HTW的答案)



Answer 2:

不完全是C,但在Objective-C,你可以很容易地通过Cocoa框架安装的字体列表:

// This returns an array of NSStrings that gives you each font installed on the system
NSArray *fonts = [[NSFontManager sharedFontManager] availableFontFamilies];

// Does the same as the above, but includes each available font style (e.g. you get
// Verdana, "Verdana-Bold", "Verdana-BoldItalic", and "Verdana-Italic" for Verdana).
NSArray *fonts = [[NSFontManager sharedFontManager] availableFonts];

您可以从Python中通过访问Cocoa框架PyObjC ,如果你想要的。

在C,我觉得你可以做与ATSUI库碳类似的东西,但我不完全知道如何做到这一点,因为我还没有在字体碳工作过。 然而,从浏览ATSUI文档,我建议寻找到ATSUGetFontIDsATSUGetIndFontName功能。 下面是该链接ATSUI文档以获取更多信息。



Answer 3:

为什么不使用终端?

系统字体:

ls -R /System/Library/Fonts | grep ttf

用户字体:

ls -R ~/Library/Fonts | grep ttf

Mac OS X的默认字体:

ls -R /Library/Fonts | grep ttf

如果你需要运行你的C程序中:

void main()
{ 
    printf("System fonts: ");
    execl("/bin/ls","ls -R /System/Library/Fonts | grep ttf", "-l",0);
    printf("Mac OS X Default fonts: ");
    execl("/bin/ls","ls -R /Library/Fonts | grep ttf", "-l",0);
    printf("User fonts: ");
    execl("/bin/ls","ls -R ~/Library/Fonts | grep ttf", "-l",0);
}


Answer 4:

你想编写一个程序来做到这一点,或者你想一个程序来做到这一点? 有迹象表明,列出字体的许多程序,使用xlsfonts想到的。



Answer 5:

你可以使用Objective-C和Cocoa可用字体的数组。 你正在寻找的方法是NSFontManageravailableFonts

我不相信这是确定系统字体使用纯C.什么但是一种标准的方式,您可以自由搭配C和Objective-C,所以它真的不应该是很难用这种方法做你倒是想。



文章来源: List of installed fonts OS X / C