簡體   English   中英

如何確定 Windows 操作系統字體是否支持粗體或斜體

[英]How to determine if a Windows OS font would support bold or italic

您如何確定特定字體是否支持粗體或斜體,而不管它是 True Type 還是 Type 1? 我有以下與嵌入 Flex 字體問題相關的場景:

  • 我有 3 個 TTF 字體文件,名為 Unknown1、Unknown2 和 Unknown3。 假設他們現在已經安裝
  • 當我嵌入字體時,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。

在 C# 中,您可以通過調用FontFamily.IsStyleAvailable 來實現

我知道這個問題很老了,我遇到了同樣的問題,解決方案在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM