Public Sub GetFontPathMap As Map
Dim allFontFamilies As List = fx.GetAllFontFamilies
Dim fontPathMap As Map
fontPathMap.Initialize
Dim fontDirs As List
fontDirs.Initialize
Dim os As String = "window"
If os = "window" Then
fontDirs.Add("C:\Windows\Fonts")
else if os = "mac" Then
fontDirs.Add("/System/Library/Fonts")
fontDirs.Add("/Library/Fonts/")
Else
fontDirs.Add("/usr/share/fonts/")
End If
For Each fontDir As String In fontDirs
AddFontsToMap(fontPathMap,fontDir,allFontFamilies)
Next
Return fontPathMap
End Sub
Private Sub AddFontsToMap(fontPathMap As Map,dirPath As String,allFontFamilies As List)
For Each filename As String In File.ListFiles(dirPath)
If File.IsDirectory(dirPath,filename) Then
AddFontsToMap(fontPathMap, File.Combine(dirPath,filename), allFontFamilies)
Else If filename.EndsWith(".ttf") Or filename.EndsWith(".ttc") Then
Dim font As Font = fx.LoadFont(dirPath,filename,16)
If allFontFamilies.IndexOf(font.FamilyName) <> -1 Then
fontPathMap.Put(font.FamilyName,File.Combine(dirPath,filename))
End If
End If
Next
End Sub