Extraer imágenes de PDFs

Cuando necesitas extraer una imagen de un archivo PDF

Índice

A veces hay una necesidad real de guardar una imagen de un PDF sin tomar una captura de pantalla ni renderizar el PDF en la pantalla.
pdfimages ayuda con eso.

Una imagen cómica de un hombre está tomando una foto del diagrama en la pantalla

Para extraer imágenes de un archivo PDF en Linux, la herramienta más común y efectiva es la utilidad de línea de comandos pdfimages,
que forma parte del paquete poppler-utils.

Usando la utilidad pdfimages en Linux: Instrucciones paso a paso

1. Instalar pdfimages (si no está ya instalado):

La mayoría de las distribuciones de Linux incluyen pdfimages de forma predeterminada. Si es necesario, instálelo usando su gestor de paquetes:

sudo apt-get install poppler-utils

o para Fedora:

sudo dnf install poppler-utils

2. Abrir un Terminal:

Presione Ctrl + Alt + T para abrir una ventana de terminal.

3. Ejecutar pdfimages para extraer imágenes:

Sintaxis básica:

pdfimages  

Ejemplo:

pdfimages /path/to/file.pdf /path/to/output/image
  • Esto extraerá todas las imágenes de file.pdf y las guardará como image-000.ppm, image-001.ppm, etc., en el directorio de salida especificado.

4. Extraer imágenes como JPEG (si se desea):

Para extraer imágenes en formato JPEG (cuando sea posible), use la opción -j:

pdfimages -j /path/to/file.pdf /path/to/output/image
  • Esto guardará las imágenes JPEG como archivos .jpg.

5. Extraer imágenes de páginas específicas:

  • Para extraer imágenes de un rango de páginas, use -f (primera página) y -l (última página):
pdfimages -f 2 -l 5 -j /path/to/file.pdf /path/to/output/image
  • Esto extraerá imágenes de las páginas 2 a 5.

6. Opciones adicionales:

  • Para extraer imágenes como PNG: use -png (si lo admite su versión).
  • Para PDFs protegidos con contraseña, use -opw 'ownerpassword' o -upw 'userpassword'.

Notas

  • El formato de salida predeterminado es PPM (color) o PBM (en blanco y negro). Use -j para JPEG, o convierta los archivos PPM/PBM a otros formatos usando herramientas como convert de ImageMagick si es necesario.
  • Los archivos de salida se numeran automáticamente y se guardan en el directorio especificado.

Tabla de Resumen

Ejemplo de Comando Descripción
pdfimages input.pdf image Extrae todas las imágenes en formato PPM/PBM predeterminado
pdfimages -j input.pdf image Extrae imágenes como JPEG cuando sea posible
pdfimages -f 3 -l 5 input.pdf image Extrae imágenes de las páginas 3 a 5
pdfimages -opw 'password' -j input.pdf image Extrae imágenes de un PDF protegido con contraseña de propietario

Este método es eficiente y funciona para la mayoría de los PDF que contienen imágenes incrustadas. Pero:

  • pdfimages extrae imágenes en su resolución original solo.
  • Para controlar la resolución de salida, use una biblioteca de renderizado de PDF como PyMuPDF y especifique la DPI deseada al crear la imagen.

Cómo guardar imágenes de PDF con una resolución específica.

No puedes especificar la resolución de las imágenes extraídas al usar pdfimages, ya que esta herramienta extrae imágenes incrustadas en su formato y resolución original sin reescalado ni alteración de calidad. La resolución se determina por cómo se almacenaron las imágenes en el PDF, y pdfimages no ofrece una opción para escalar durante la extracción.

Si deseas extraer imágenes a una resolución específica (por ejemplo, renderizar una página o una parte de una página como una imagen a una DPI elegida), debes usar una biblioteca de renderizado de PDF o herramienta como PyMuPDF (fitz). Con PyMuPDF, puedes especificar la resolución deseada usando el parámetro dpi al renderizar una página como imagen:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0)  # primera página
pix = page.get_pixmap(dpi=300)  # renderizar a 300 DPI
pix.save("output.png")

Este enfoque crea una imagen rasterizada de la página a la DPI especificada, en lugar de extraer las imágenes incrustadas originales.

Otras herramientas para extraer imágenes de PDFs

El mejor software para extraer imágenes de PDFs sin perder resolución son aquellos que extraen las imágenes incrustadas originales directamente, en lugar de renderizarlas o reescalarlas. Las mejores opciones incluyen:

  • Adobe Acrobat Pro: Ofrece una función dedicada “Exportar todas las imágenes”, que extrae imágenes en su calidad y formato originales como archivos independientes. Este método es altamente confiable y preserva la resolución y calidad exactas de las imágenes como se almacenan en el PDF.

  • pdfimages (del conjunto XPDF/Poppler): Una herramienta gratuita, de código abierto, de línea de comandos disponible en Linux y otras plataformas. pdfimages extrae todas las imágenes de un PDF en su formato y resolución nativa, incluyendo soporte para JPEG, JPEG2000 y otros formatos. Es ampliamente recomendada para usuarios que buscan un proceso de extracción de alta fidelidad sin costo.

  • Herramientas en línea (por ejemplo, PDF24 Tools, PDFCandy, pdfforge): Estos servicios permiten subir un PDF y descargar las imágenes extraídas, manteniendo la resolución original. Son convenientes para tareas rápidas y no requieren instalación, pero pueden plantear preocupaciones de privacidad para documentos sensibles.

Tabla de Resumen

Software/Herramienta Plataforma Mantiene la Resolución Original Notas
Adobe Acrobat Pro Windows/Mac Pago, profesional, muy confiable
pdfimages (Poppler) Linux/Windows Gratuito, de código abierto, utilidad de línea de comandos
PDF24 Tools, PDFCandy Basado en web Gratuito, fácil de usar, consideraciones de privacidad

Punto clave:
Siempre use herramientas que extraigan (no rendericen ni tomen capturas de pantalla) las imágenes. Tanto Adobe Acrobat Pro como pdfimages son estándares de la industria para este propósito, asegurando que las imágenes se guarden exactamente como existen en el PDF, sin pérdida de resolución.

Opciones de línea de comandos de pdfutils

Cuando ejecuta pdfimages /help imprimirá algo como:

$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : primera página para convertir
  -l <int>       : última página para convertir
  -png           : cambiar el formato de salida predeterminado a PNG
  -tiff          : cambiar el formato de salida predeterminado a TIFF
  -j             : escribir imágenes JPEG como archivos JPEG
  -jp2           : escribir imágenes JPEG2000 como archivos JP2
  -jbig2         : escribir imágenes JBIG2 como archivos JBIG2
  -ccitt         : escribir imágenes CCITT como archivos CCITT
  -all           : equivalente a -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : imprimir lista de imágenes en lugar de guardar
  -opw <string>  : contraseña del propietario (para archivos encriptados)
  -upw <string>  : contraseña del usuario (para archivos encriptados)
  -p             : incluir números de página en los nombres de los archivos de salida
  -q             : no imprimir ningún mensaje o error
  -v             : imprimir información de copyright y versión
  -h             : imprimir información de uso
  -help          : imprimir información de uso
  --help         : imprimir información de uso
  -?             : imprimir información de uso

Enlaces útiles