PdfRpt.Core.Helper.ExtractPdfFileAttachments.extractFileAttachmentAnnotations C# (CSharp) Method

extractFileAttachmentAnnotations() private static method

private static extractFileAttachmentAnnotations ( PdfReader reader ) : IList
reader iTextSharp.text.pdf.PdfReader
return IList
        private static IList<AttachmentFile> extractFileAttachmentAnnotations(PdfReader reader)
        {
            var results = new List<AttachmentFile>();

            var numberOfPages = reader.NumberOfPages;
            for (int pageNumber = 1; pageNumber <= numberOfPages; ++pageNumber)
            {
                var annots = PdfReader.GetPdfObject(reader.GetPageN(pageNumber).Get(PdfName.ANNOTS)) as PdfArray;
                if (annots == null)
                    continue;

                foreach (var item in annots)
                {
                    var annot = PdfReader.GetPdfObject(item) as PdfDictionary;
                    if (annot == null)
                        continue;

                    var subType = PdfReader.GetPdfObject(annot.Get(PdfName.SUBTYPE)) as PdfName;
                    if (!PdfName.FILEATTACHMENT.Equals(subType))
                        continue;

                    var filespec = PdfReader.GetPdfObject(annot.Get(PdfName.FS)) as PdfDictionary;
                    var file = extractFile(filespec);
                    if (file == null)
                        continue;
                    results.Add(file);
                }
            }

            return results;
        }