我正在寻找一种使用.NET框架查找给定字体的通用面孔名称(Sans-Serif,Serif,Monospace,Cursive,Fantasy)的方法。我的首选语言是C#,但是我已经写了近15年的源代码,因此,如果您可以用任何现代语言给我一个示例,我可以自己进行翻译。

[编辑-澄清]

我需要一种方法来确定任何给定的System.Drawing.Font对象属于哪个通用字体家族(Sans-Serif,Serif,Monospace,Cursive或Fantasy ...甚至可能是Symbol)。

例如,如果我从以下代码行创建字体:

System.Drawing.Font font = new System.Drawing.Font( "Serif", 12f, System.Drawing.GraphicsUnit.Point );


结果字体可能是12点的“ Times New Roman”字体。但是我不想要“时代”或“新罗马”甚至“时代新罗马”,我需要知道它属于“ Serif”家族。

最佳答案

这是印刷字体分类,不能从Windows字体api函数直接获得。一个可能的后门是GetFontData(),它使您可以直接访问该字体的TrueType表。那里有很多信息,但是我不知道这种确切的信息可用。您可以在表的the specification中查找自己。

关于c# - 如何在.NET框架中找到字体的通用名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15015525/

10-12 17:50
查看更多