2012-08-09 183 views
8

假設有一個.ttf(True Type字體)文件。您可以通過點擊將其安裝在窗口上。字體的真實名稱不是在.tff之前的文本(可以說是SuperFont.ttf =>所以名稱不是「SuperFont」 - 它可以是,但大多不是)。我想讀取.tff(以某種方式?)並獲取字體的名稱(不安裝字體)。有任何想法嗎?獲取.ttf文件的字體名稱

+1

這裏是ttf ref手冊https://developer.apple.com/fonts/TTRefMan/index.html – albertjan 2012-08-09 14:13:43

回答

22

您需要將字體添加到私有集合(PrivateFontCollection),然後請求FontFamily實例並獲取其Name屬性。

像這樣:

PrivateFontCollection fontCol = new PrivateFontCollection(); 
fontCol.AddFontFile(@"PATH TO FONT"); 
Console.WriteLine(fontCol.Families[0].Name); 

你需要的命名空間:

using System.Drawing; 
using System.Drawing.Text; 

MSDN:PrivateFontCollectionFontFamily

+1

_(沒有安裝字體)_ – 2012-08-09 14:17:46

+3

這不會安裝字體。雖然MSDN使用術語「安裝」,但他們正在使用它。 「'這是一個臨時字體安裝,不會影響系統安裝的集合。」「這裏安裝基本上意味着」加載「。 – 2012-08-09 14:18:49

+0

對,沒有意識到。 – 2012-08-09 14:19:46

3

下面是另一個代碼來提取字體名,而無需使用System.Drawing中dll

foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/")) 
{ 
    string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1]; 
} 
+0

FontFamily在System.Drawing.dll中... – 2016-10-13 00:40:47

相關問題