如果我的字体名称如“Courier New”,我如何获得“ - -courier - - * - - ...”这样的名字?我对前两个部分感兴趣 - 制造商和家庭。
谢谢。
P.S。我可以使用标准的Xlib函数。我不想依赖任何其他图书馆。
答案 0 :(得分:1)
不幸的是,字体处理在X11中是碎片化的,你想要的是不可能的。
Xlib函数XListFonts()
将返回'old',固定大小的字体列表,如'-adobe-courier-bold-o-normal - 0-0-100-100-m-iso10464- 1。这就是所有信息;只是一个名字和一堆参数。
你所寻求的是像XftFontOpenName()
这样的Freetype的功能,你可以提供像“Courier New-14:bold:slant = italic,oblique”这样的模式。但它是一种完全不同的渲染字体方式,两种字体系统之间没有连接。
您可以使用XftFontMatch()
在Xft库中查询字体列表,这可能会为您提供所需的信息。但是你必须使用freetype库(我认为这是一个很小的代价)。