コード例 #1
0
 /// <summary>Sets the PostScript name of the font.</summary>
 /// <remarks>
 /// Sets the PostScript name of the font.
 /// <br />
 /// If full name is null, it will be set as well.
 /// </remarks>
 /// <param name="fontName">the PostScript name of the font, shall not be null or empty.</param>
 protected internal virtual void SetFontName(String fontName)
 {
     fontNames.SetFontName(fontName);
     if (fontNames.GetFullName() == null)
     {
         fontNames.SetFullName(fontName);
     }
 }
コード例 #2
0
        private ICollection <String> ExtractFullFontNames(FontNames fontNames)
        {
            ICollection <String> uniqueFullNames = new HashSet <String>();

            foreach (String[] fullName in fontNames.GetFullName())
            {
                uniqueFullNames.Add(fullName[3].ToLowerInvariant());
            }
            return(uniqueFullNames);
        }
コード例 #3
0
        internal FontProgramDescriptor(FontNames fontNames, float italicAngle, bool isMonospace)
        {
            this.fontName            = fontNames.GetFontName();
            this.fontNameLowerCase   = this.fontName.ToLowerInvariant();
            this.fullNameLowerCase   = fontNames.GetFullName()[0][3].ToLowerInvariant();
            this.familyNameLowerCase = fontNames.GetFamilyName() != null && fontNames.GetFamilyName()[0][3] != null?
                                       fontNames.GetFamilyName()[0][3].ToLowerInvariant() : null;

            this.style       = fontNames.GetStyle();
            this.weight      = fontNames.GetFontWeight();
            this.macStyle    = fontNames.GetMacStyle();
            this.italicAngle = italicAngle;
            this.isMonospace = isMonospace;
        }
コード例 #4
0
        internal FontProgramDescriptor(FontNames fontNames, float italicAngle, bool isMonospace)
        {
            // Initially needed for open type fonts only.
            // The following sequence represents four triplets.
            // In each triplet items sequentially stand for platformID encodingID languageID (see open type naming table spec).
            // Each triplet is used further to determine whether the font name item is represented in English
            this.fontName            = fontNames.GetFontName();
            this.fontNameLowerCase   = this.fontName.ToLowerInvariant();
            this.fullNameLowerCase   = fontNames.GetFullName()[0][3].ToLowerInvariant();
            this.familyNameLowerCase = fontNames.GetFamilyName() != null && fontNames.GetFamilyName()[0][3] != null?
                                       fontNames.GetFamilyName()[0][3].ToLowerInvariant() : null;

            this.style       = fontNames.GetStyle();
            this.weight      = fontNames.GetFontWeight();
            this.macStyle    = fontNames.GetMacStyle();
            this.italicAngle = italicAngle;
            this.isMonospace = isMonospace;
            this.familyNameEnglishOpenType = ExtractFamilyNameEnglishOpenType(fontNames);
            this.fullNamesAllLangs         = ExtractFullFontNames(fontNames);
            this.fullNamesEnglishOpenType  = ExtractFullNamesEnglishOpenType(fontNames);
        }
コード例 #5
0
 private ICollection <String> ExtractFullNamesEnglishOpenType(FontNames fontNames)
 {
     if (familyNameEnglishOpenType != null)
     {
         ICollection <String> uniqueTtfSuitableFullNames = new HashSet <String>();
         String[][]           names = fontNames.GetFullName();
         foreach (String[] name in names)
         {
             for (int k = 0; k < TT_FAMILY_ORDER.Length; k += 3)
             {
                 if (TT_FAMILY_ORDER[k].Equals(name[0]) && TT_FAMILY_ORDER[k + 1].Equals(name[1]) && TT_FAMILY_ORDER[k + 2]
                     .Equals(name[2]))
                 {
                     uniqueTtfSuitableFullNames.Add(name[3]);
                     break;
                 }
             }
         }
         return(uniqueTtfSuitableFullNames);
     }
     return(new HashSet <String>());
 }