iTextSharp.text.pdf.PdfReader.PageRefs.IteratePages C# (CSharp) Метод

IteratePages() приватный Метод

private IteratePages ( PRIndirectReference rpage ) : void
rpage PRIndirectReference
Результат void
            private void IteratePages(PRIndirectReference rpage) {
                PdfDictionary page = (PdfDictionary)GetPdfObject(rpage);
                PdfArray kidsPR = page.GetAsArray(PdfName.KIDS);
                if (kidsPR == null) {
                    page.Put(PdfName.TYPE, PdfName.PAGE);
                    PdfDictionary dic = (PdfDictionary)pageInh[pageInh.Count - 1];
                    foreach (PdfName key in dic.Keys) {
                        if (page.Get(key) == null)
                            page.Put(key, dic.Get(key));
                    }
                    if (page.Get(PdfName.MEDIABOX) == null) {
                        PdfArray arr = new PdfArray(new float[]{0,0,PageSize.LETTER.Right,PageSize.LETTER.Top});
                        page.Put(PdfName.MEDIABOX, arr);
                    }
                    refsn.Add(rpage);
                }
                else {
                    page.Put(PdfName.TYPE, PdfName.PAGES);
                    PushPageAttributes(page);
                    for (int k = 0; k < kidsPR.Size; ++k){
                        PdfObject obj = kidsPR[k];
                        if (!obj.IsIndirect()) {
                            while (k < kidsPR.Size)
                                kidsPR.Remove(k);
                            break;
                        }
                        IteratePages((PRIndirectReference)obj);
                    }
                    PopPageAttributes();
                }
            }