Does anyone know a simple (possibly free) extractor for PDFs for Windows?

I'd like to extract original images from PDF as they were embedded (preserving image meta info), so I can do some forensics to analyze these extracted images.

When I google, I find a lot of deceptive sites that say it's free but then there are 10 ads that look like download buttons and a virus inside.

Can anyone recommend good software for this?


3 Answers 3


FlexPaper Elements can extract the images from your PDF if you tick the "extract images" option in the left hand side of the creative publisher toolbar panel. You can download and try it here


NOTE: This answer was likely provided by the developer.


It has been some time, but under XP I used a tools called pdf2jpg. It had a bug that you could only extract the files from one PDF (although you selected more); you then had to close/restart the program. But hey, it did what I needed ;-)

Nowadays there are may online services as well that let you extract the images. To name a few:


If you're looking to develop an application such as this, I would recommend checking out the LEADTOOLS Document Imaging SDK. LEADTOOLS provides .NET libraries for handling this, and there's an example project posted on the Support Forums here: https://www.leadtools.com/support/forum/posts/m41715-Extracting-embedded-images-from-a-PDF-file#post41715

The relevant sample code is here:

// Open PDF file
using (PDFDocument pdfDoc = new PDFDocument(filename, password))
    // Set load resolution for the embeded images
    pdfDoc.Resolution = 150;

    // Parse the pages
    pdfDoc.ParsePages(PDFParsePagesOptions.Objects, 1, -1);

    using (RasterCodecs codecs = new RasterCodecs())
        foreach (PDFDocumentPage page in pdfDoc.Pages)
            if (page.Objects != null && page.Objects.Count > 0)
                foreach (PDFObject obj in page.Objects)
                    if (obj.ObjectType == PDFObjectType.Image)
                        using (RasterImage image = pdfDoc.DecodeImage(obj.ImageObjectNumber))
                            codecs.Save(image, targetDir + obj.ImageObjectNumber + "." + saveFormat.Extension, saveFormat.Format, 0, 1, 1, -1, CodecsSavePageMode.Overwrite);

Disclaimer: I am an employee of the company that wrote this library.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.