Platforms to show: All Mac Windows Linux Cross-Platform
/DynaPDF/Fonts Mapping with NSFont
Required plugins for this example: MBS MacBase Plugin, MBS DynaPDF Plugin, MBS Main Plugin, MBS MacCocoa Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /DynaPDF/Fonts Mapping with NSFont
This example is the version from Mon, 29th Jul 2018.
Project "Fonts Mapping with NSFont.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
EventHandler Sub Open()
dim d as new DynaPDFMBS
dim fontManager as NSFontManagerMBS = NSFontManagerMBS.sharedFontManager
dim fonts() as DynaPDFSysFontMBS = d.GetSysFontInfos
dim FontDic as new Dictionary
for each f as DynaPDFSysFontMBS in fonts
fontdic.Value(f.PostScriptName) = f
next
dim NSFontNames() as string = fontManager.availableFonts
dim fontMissing as integer
for each NSFontName as string in NSFontNames
List.AddRow NSFontName
dim f as DynaPDFSysFontMBS = fontdic.Lookup(NSFontName, nil)
if f = nil and left(NSFontName,1) = "." then
// lookup without dot to find a few special cases...
f = fontdic.Lookup(NSFontName.mid(2), nil)
end if
if f <> nil then
List.Cell(List.LastIndex,1) = f.FamilyName
List.Cell(List.LastIndex,2) = f.PostScriptName
else
fontMissing = fontMissing + 1
end if
next
'Title = str(fontMissing)+" fonts missing?"
End EventHandler
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project
See also:
The items on this page are in the following plugins: MBS DynaPDF Plugin.