区分C#vsto中自定义安装的字体和Office应用程序内置(默认)字体



我是.Net世界的新手。我正在用C#(vsto(为Excel编写一个Addin,我想在那里读出给定Excel文件中可用的所有字体样式。我想知道用户是否为Office应用程序自定义安装了任何字体。下面的代码有助于检索所有安装的字体,包括自定义安装字体和默认办公字体。

InstalledFontCollection installedFontCollection = new InstalledFontCollection();
FontFamily[] fontFamilies = installedFontCollection.Families; 

你能告诉我是否有任何程序可以区分默认的Office应用程序字体和自定义安装吗?

您可以使用以下代码获得Office应用程序中可用的字体列表:

Option Explicit
Sub listFonts()
Dim wd As Object, fontID As Variant
Set wd = CreateObject("Word.Application")
For Each fontID In wd.FontNames
Sheet1.cmbFonts.AddItem fontID
Next
wd.Quit
Set wd = Nothing
End Sub

FontNames接口表示所有可用字体的名称列表。不能向可用字体名称列表中添加名称或从中删除名称。

没有其他方法可以区分内置字体或其他字体。我想Office应用程序总是处理已安装的字体。

最新更新