¿Herramienta de software para extraer imágenes incrustadas originales de archivos PDF?

¿Alguien conoce un extractor simple (posiblemente gratuito) para archivos PDF para Windows?

Me gustaría extraer las imágenes originales del PDF tal como estaban incrustadas (preservando la metainformación de la imagen), para poder hacer algunos análisis forenses para analizar estas imágenes extraídas.

Cuando busco en Google, encuentro muchos sitios engañosos que dicen que es gratis, pero luego hay 10 anuncios que parecen botones de descarga y un virus adentro.

¿Alguien puede recomendar un buen software para esto?

Relacionado (y respuesta parcial): softwarerecs.stackexchange.com/questions/18728/…

Respuestas (3)

FlexPaper Elements puede extraer las imágenes de su PDF si marca la opción "extraer imágenes" en el lado izquierdo del panel de la barra de herramientas del editor creativo. Puedes descargarlo y probarlo aquí

http://flexpaper.devaldi.com/download/

NOTA: Esta respuesta probablemente fue proporcionada por el desarrollador.

Ha pasado algún tiempo, pero en XP usé una herramienta llamada pdf2jpg . Tenía un error que solo podía extraer los archivos de un PDF (aunque seleccionaba más); luego tuvo que cerrar/reiniciar el programa. Pero bueno, hizo lo que necesitaba ;-)

Hoy en día también existen muchos servicios en línea que le permiten extraer las imágenes. Para nombrar unos pocos:

Si está buscando desarrollar una aplicación como esta, le recomendaría consultar el SDK de imágenes de documentos LEADTOOLS . LEADTOOLS proporciona bibliotecas .NET para manejar esto, y hay un proyecto de ejemplo publicado en los foros de soporte aquí: https://www.leadtools.com/support/forum/posts/m41715-Extracting-embedded-images-from-a-PDF -archivo#post41715

El código de muestra relevante está aquí:

// 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);
}

Descargo de responsabilidad: soy un empleado de la empresa que escribió esta biblioteca.