Esempio n. 1
0
 /// <summary>Checks whether a specified page of a PDF file contains images.</summary>
 /// <returns>True if the page contains at least one image; false otherwise.</returns>
 public static bool PageContainsImages(string filename, int pageNumber)
 {
     using (var reader = new PdfReader(filename))
     {
         var parser = new PdfReaderContentParser(reader);
         ImageRenderListener listener = null;
         parser.ProcessContent(pageNumber, (listener = new ImageRenderListener()));
         return(listener.Images.Count > 0);
     }
 }
Esempio n. 2
0
        /// <summary>Extracts all images (of types that iTextSharp knows how to decode) from a PDF file.</summary>
        public static Dictionary <string, System.Drawing.Image> ExtractImages(string filename)
        {
            var images = new Dictionary <string, System.Drawing.Image>();

            using (var reader = new PdfReader(filename))
            {
                #region Trash
                //FileStream fos = new FileStream(@"C:\PDFA\Meta.txt",FileMode.Create);
                ////FileOutputStream fos = new FileOutputStream(dest);
                //byte[] b = reader.Metadata;
                //fos.Write(b, 0, b.Length);
                //fos.Flush();
                //fos.Close();

                //XmlDocument doc = new XmlDocument();
                //MemoryStream ms = new MemoryStream(b);
                //doc.Load(ms);
                //XmlNode node = doc.DocumentElement;
                //for (int i = 0; i < node.InnerXml.Length; i++)
                //{
                //    string val = node.InnerXml[i].ToString();
                //}

                #endregion


                try
                {
                    var parser = new PdfReaderContentParser(reader);
                    ImageRenderListener listener = null;

                    for (var i = 1; i <= reader.NumberOfPages; i++)
                    {
                        parser.ProcessContent(i, (listener = new ImageRenderListener()));
                        var index = 1;

                        if (listener.Images.Count > 0)
                        {
                            Console.WriteLine("Found {0} images on page {1}.", listener.Images.Count, i);

                            foreach (var pair in listener.Images)
                            {
                                images.Add(string.Format("{0}{1}", System.IO.Path.GetFileNameWithoutExtension(filename), i.ToString()), pair.Key);//DS
                                index++;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return(images);
            }
        }
Esempio n. 3
0
        /// <summary>Extracts all images (of types that iTextSharp knows how to decode)
        /// from a specified page of a PDF file.</summary>
        /// <returns>Returns a generic <see cref="Dictionary&lt;string, System.Drawing.Image&gt;"/>,
        /// where the key is a suggested file name, in the format: PDF filename without extension,
        /// page number and image index in the page.</returns>
        public static Dictionary <string, System.Drawing.Image> ExtractImages(string filename, int pageNumber)
        {
            Dictionary <string, System.Drawing.Image> images = new Dictionary <string, System.Drawing.Image>();
            PdfReader reader = new PdfReader(filename);
            PdfReaderContentParser parser   = new PdfReaderContentParser(reader);
            ImageRenderListener    listener = null;

            parser.ProcessContent(pageNumber, (listener = new ImageRenderListener()));
            int index = 1;

            if (listener.Images.Count > 0)
            {
                Console.WriteLine("Found {0} images on page {1}.", listener.Images.Count, pageNumber);

                foreach (KeyValuePair <System.Drawing.Image, string> pair in listener.Images)
                {
                    images.Add(string.Format("{0}_Page_{1}_Image_{2}{3}",
                                             System.IO.Path.GetFileNameWithoutExtension(filename), pageNumber.ToString("D4"), index.ToString("D4"), pair.Value), pair.Key);
                    index++;
                }
            }
            return(images);
        }