如何确定Windows操作系统字体是否支持粗体或斜体

时间:2011-01-24 17:33:43

标签: fonts coding-style flex4 embed detect

无论是True Type还是Type 1,您如何确定特定字体是否支持粗体或斜体?我有以下与嵌入Flex字体问题有关的方案:

  • 我有3个名为Unknown1,Unknown2和Unknown3的TTF字体文件。假设它们现在已经安装
  • 当我嵌入字体时,Flex告诉我Unknown2.ttf不支持粗体或Unknown3.ttf不支持斜体样式

我的问题是,Flex是如何知道所有这一切的?我一直在搜索C#和Java库,但它们似乎都没有提供我需要的东西。或者显然,我看起来不够努力。无论如何,Java或C#中的类可以为我提供一些签名,如:

Font unknownFont = Font.getFontFromAnyDirectory(“Unknown2.ttf”); unknownFont.supportsAnyStyleCalled(Font.BOLD); //返回false。 unknownFont.supportsAnyStyleCalled(Font.ITALIC); //返回true。 // unknownFont = Font.getFontFromAnyDirectory(“Unknown3.ttf”); unknownFont.supportsAnyStyleCalled(Font.BOLD); //返回true。 unknownFont.supportsAnyStyleCalled(Font.ITALIC); //返回false。

2 个答案:

答案 0 :(得分:0)

在C#中你可以通过调用FontFamily.IsStyleAvailable

来实现

答案 1 :(得分:0)

我知道问题很老,我遇到了同样的问题,解决方案在C# get font style from .ttf中进行了说明。

您可以使用:

GlyphTypeface ttf = new GlyphTypeface(new Uri(@"C:\Windows\Fonts\calibrii.ttf"));
Debug.Print(ttf.Style.ToString()); //=Italic or Normal
Debug.Print(ttf.Weight.ToString()); //=Bold or Normal