iTextSharp.text.pdf.BaseFont.RecourseFonts C# (CSharp) Метод

RecourseFonts() приватный статический Метод

private static RecourseFonts ( PdfDictionary page, IntHashtable hits, List fonts, int level ) : void
page PdfDictionary
hits IntHashtable
fonts List
level int
Результат void
        private static void RecourseFonts(PdfDictionary page, IntHashtable hits, List<object[]> fonts, int level)
        {
            ++level;
            if (level > 50) // in case we have an endless loop
                return;
            if (page == null)
                return;
            PdfDictionary resources = page.GetAsDict(PdfName.RESOURCES);
            if (resources == null)
                return;
            PdfDictionary font = resources.GetAsDict(PdfName.FONT);
            if (font != null) {
                foreach (PdfName key in font.Keys) {
                    PdfObject ft = font.Get(key);
                    if (ft == null || !ft.IsIndirect())
                        continue;
                    int hit = ((PRIndirectReference)ft).Number;
                    if (hits.ContainsKey(hit))
                        continue;
                    AddFont((PRIndirectReference)ft, hits, fonts);
                }
            }
            PdfDictionary xobj = resources.GetAsDict(PdfName.XOBJECT);
            if (xobj != null) {
                foreach (PdfName key in xobj.Keys) {
                    PdfObject po = xobj.GetDirectObject(key);
                    if (po is PdfDictionary)
                        RecourseFonts((PdfDictionary)po, hits, fonts, level);
                }
            }
        }