public bool AddFont(FontStreamSource src) { //preview data of font using (Stream stream = src.ReadFontStream()) { var reader = new OpenFontReader(); PreviewFontInfo previewFont = reader.ReadPreview(stream); if (previewFont == null || string.IsNullOrEmpty(previewFont.Name)) { //err! return(false); } //*** if (previewFont.IsFontCollection) { int mbCount = previewFont.MemberCount; bool passAll = true; for (int i = 0; i < mbCount; ++i) { PreviewFontInfo member = previewFont.GetMember(i); if (!RegisterFont(new InstalledFont( member.Name, member.SubFamilyName, member.TypographicFamilyName, member.TypographicSubFamilyName, src.PathName, member.Weight) { StreamOffset = member.ActualStreamOffset })) { passAll = false; } } return(passAll); } else { return(RegisterFont(new InstalledFont( previewFont.Name, previewFont.SubFamilyName, previewFont.TypographicFamilyName, previewFont.TypographicSubFamilyName, src.PathName, previewFont.Weight))); } } }
public bool AddFont(FontStreamSource src) { //preview data of font using (Stream stream = src.ReadFontStream()) { var reader = new OpenFontReader(); PreviewFontInfo previewFont = reader.ReadPreview(stream); if (string.IsNullOrEmpty(previewFont.fontName)) { //err! return(false); } return(RegisterFont(new InstalledFont(previewFont.fontName, previewFont.fontSubFamily, src.PathName))); } }