【发布时间】:2013-11-13 06:31:40
【问题描述】:
如果我有像“Courier New”这样的字体名称,如何获得像“--courier--*--...”这样的名称?我对前两个部分感兴趣 - 制造商和家庭。
谢谢。
附:我可以使用标准的 Xlib 函数。我不想依赖任何其他库。
【问题讨论】:
如果我有像“Courier New”这样的字体名称,如何获得像“--courier--*--...”这样的名称?我对前两个部分感兴趣 - 制造商和家庭。
谢谢。
附:我可以使用标准的 Xlib 函数。我不想依赖任何其他库。
【问题讨论】:
不幸的是,字体处理在 X11 中是零散的,你想要的是不可能的。
Xlib 函数XListFonts() 将返回“旧”、固定大小的字体列表,例如“-adobe-courier-bold-o-normal--0-0-100-100-m-iso10464-1” .这就是所有的信息;只是一个名称和一堆参数。
您正在寻找来自 Freetype 的函数,例如 XftFontOpenName(),您可以在其中提供类似“Courier New-14:bold:slant=italic,oblique”的模式。但这是一种完全不同的字体渲染方式,两种字体系统之间没有任何联系。
您可以使用XftFontMatch() 查询Xft 库以获取字体列表,也许这将为您提供所需的信息。但是你将不得不使用 freetype 库(我认为这是一个很小的代价)。
【讨论】: