/// <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); } }
/// <exception cref="System.IO.IOException"/> public virtual void Close() { if (fontParser != null) { fontParser.Close(); } fontParser = null; }