Пример #1
0
        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)));
                }
            }
        }
Пример #2
0
 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)));
     }
 }