/// <summary> /// Extract all images from a PDF file /// </summary> /// <param name="pdfPath">Full path and file name of PDF file</param> /// <param name="outputFilePrefix">Basic name of exported files. If null then uses same name as PDF file.</param> /// <param name="outputFolder">Where to save images. If null or empty then uses same folder as PDF file.</param> /// <param name="overwriteExistingFiles">True to overwrite existing image files, false to skip past them</param> /// <returns>Count of number of images extracted.</returns> public static int ExtractImagesFromFile(string pdfPath, string outputFilePrefix, string outputFolder, bool overwriteExistingFiles) { // Handle setting of any default values outputFilePrefix = outputFilePrefix ?? System.IO.Path.GetFileNameWithoutExtension(pdfPath); outputFolder = String.IsNullOrEmpty(outputFolder) ? System.IO.Path.GetDirectoryName(pdfPath) : outputFolder; var instance = new ImageExtractor(outputFilePrefix, outputFolder, overwriteExistingFiles); using (var pdfReader = new PdfReader(pdfPath)) { if (pdfReader.IsEncrypted()) { throw new ApplicationException(pdfPath + " is encrypted."); } var pdfParser = new PdfReaderContentParser(pdfReader); while (instance._currentPage <= pdfReader.NumberOfPages) { pdfParser.ProcessContent(instance._currentPage, instance); instance._currentPage++; } } return(instance._imageCount); }
public static int ExtractImagesFromFile(string pdfFileName, string outputFilePrefix, string outputDirectory, bool overwriteExistingImages) { return(ImageExtractor.ExtractImagesFromFile(pdfFileName, outputFilePrefix, outputDirectory, overwriteExistingImages)); }