/// <exception cref="System.IO.IOException"/>
        private static FontProgramDescriptor FetchTTCDescriptor(String baseName)
        {
            int ttcSplit = baseName.ToLowerInvariant().IndexOf(".ttc,", StringComparison.Ordinal);

            if (ttcSplit > 0)
            {
                String ttcName;
                int    ttcIndex;
                try {
                    ttcName = baseName.JSubstring(0, ttcSplit + 4);
                    // count(.ttc) = 4
                    ttcIndex = Convert.ToInt32(baseName.Substring(ttcSplit + 5));
                }
                catch (FormatException nfe) {
                    // count(.ttc,) = 5)
                    throw new iText.IO.IOException(nfe.Message, nfe);
                }
                OpenTypeParser        parser     = new OpenTypeParser(ttcName, ttcIndex);
                FontProgramDescriptor descriptor = FetchOpenTypeFontDescriptor(parser);
                parser.Close();
                return(descriptor);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
 /// <exception cref="System.IO.IOException"/>
 public virtual void Close()
 {
     if (fontParser != null)
     {
         fontParser.Close();
     }
     fontParser = null;
 }