FYI, folks can get around this with the following (C#) code. I do think that this should be a Slide.Net feature FWIW
private IEnumerable<string> GetUnknownFontsInPresentation(
IEnumerable<string> customFontDirectories,
Presentation presentation)
{
IEnumerable<IFontData> fonts = presentation.FontsManager.GetFonts();
IEnumerable<IFontData> embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
InstalledFontCollection installedFontCollection = new InstalledFontCollection();
PrivateFontCollection privateFontCollection = new PrivateFontCollection();
// Build our list of custom fonts from the font files (of supported formats) in our custom font dirs
foreach (string customFontDir in customFontDirectories)
{
foreach (string file in Directory.EnumerateFiles(customFontDir, "*", SearchOption.AllDirectories)
.Where(f => SupportedFontFileFormats.Contains(Path.GetExtension(f))))
{
privateFontCollection.AddFontFile(file);
}
}
// Grab a list of all known font types from our three sources:
// - The system font dirs (installedFontCollection)
// - The custom font dirs (privateFontCollection)
// - Embedded fonts (embeddedFonts)
HashSet<string> knownFonts = new HashSet<string>(installedFontCollection.Families
.Select(ff => ff.Name)
.Concat(privateFontCollection.Families.Select(ff => ff.Name))
.Concat(embeddedFonts.Select(font => font.FontName)));
return fonts
.Where(f => !knownFonts.Contains(f.FontName))
.Select(f => f.FontName);
}
Given I have a workaround, there is no criticality to this ticket.