/// <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 bool PageContainsImages(string filename, int pageNumber) { PdfReader reader = new PdfReader(filename); PdfReaderContentParser parser = new PdfReaderContentParser(reader); ImageRenderListener listener = null; parser.ProcessContent(pageNumber, (listener = new ImageRenderListener())); return listener.Images.Count > 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<string, System.Drawing.Image>", /// 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 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 Path.GetFileNameWithoutExtension(filename)", pageNumber.ToString("D4"), index.ToString("D4"), pair.Value), pair.Key); index++; } } return images; }