Extraer imágenes de PDF

Extrae todas las imágenes incrustadas de un PDF y descárgalas individualmente o como un .zip. Sin subida.

Suelta un PDF aquí o
  1. Suelta un PDF o haz clic en "examinar".
  2. Haz clic en "Extraer imágenes" — aparece una cuadrícula de miniaturas.
  3. Haz clic en cualquier miniatura para descargar esa imagen, o "Descargar todo como .zip" para un paquete.
  4. Las imágenes se guardan como PNG; la codificación original se decodifica primero en un canvas.
¿Qué hace?

Recorre cada página del PDF, localiza cada operación paintImageXObject y extrae el bitmap de imagen subyacente. Cada imagen extraída se normaliza a PNG vía canvas — los orígenes JPEG pierden su compresión original, pero los píxeles de salida son los mismos que los que el PDF renderizó. Las imágenes guardadas en codecs no soportados (JBIG2, CCITT para fax, JPX para JPEG 2000) se reportan en el conteo pero no se decodifican — eso requeriría bibliotecas de codec dedicadas más allá de pdfjs-dist.

Problemas comunes

La extracción de imágenes PDF es fundamentalmente dependiente del codec. La mayoría de PDFs funcionan — estos son los patrones donde la extracción puede producir resultados sorprendentes.

  • Codecs de imagen no soportados. JBIG2 (algunos documentos escaneados), CCITT (escaneos estilo fax) y JPEG 2000 (JPX) no se decodifican. La línea de estado reporta cuántos se omitieron. Para extraer esos, renderiza vía /pdf-to-images en su lugar — eso rasteriza la página entera incluyendo la imagen.
  • Calidad JPEG original perdida. Las imágenes se exportan como PNG para preservar la transparencia y evitar artefactos de doble compresión. Si tu fuente fue un JPEG embebido en el PDF, la salida PNG es más grande pero pixel-idéntica a lo que pdf-lib decodificó.
  • Imágenes inline omitidas. Algunos PDFs usan datos de imagen inline (operadores BI/ID/EI) en lugar de XObjects — típicamente imágenes muy pequeñas. v1 no las extrae. La mayoría de fotos y capturas de pantalla son XObjects y se extraen correctamente.
  • La misma imagen, varias veces. Los PDFs a menudo referencian una imagen XObject desde múltiples páginas. v1 extrae la imagen una vez por llamada paintImageXObject, así que un logo duplicado aparecerá una vez por uso. Deduplica por nombre o hash si es necesario.
  • PDFs encriptados. Los PDFs protegidos por contraseña no pueden abrirse sin la contraseña. Pásalos por /pdf-unlock primero si tienes la contraseña del propietario.
  • PDFs muy grandes. Cada imagen extraída vive en la memoria del navegador hasta que limpias o navegas. PDFs con cientos de imágenes de alta resolución pueden usar 100s de MB de RAM. Usa la descarga .zip rápidamente y haz clic en Limpiar al terminar.
Preguntas frecuentes

¿Por qué mis imágenes son PNG, no JPG?

PNG preserva la transparencia y evita artefactos de re-codificación. Los píxeles son los mismos que el original; el archivo es más grande porque PNG es sin pérdida. Para ahorrar espacio, pasa el resultado por /image-compress en modo WebP.

¿Cómo identifico de qué página vino cada imagen?

Los nombres de archivo siguen el patrón `pageN-imgM.png` — N es el número de página fuente, M es un número de secuencia dentro de esa página. Ordena por nombre para ver el orden en que aparecen en el PDF.

¿Las imágenes encriptadas saldrán mezcladas?

Los datos de imagen dentro de un PDF no encriptado no están encriptados por separado — se decodifican normalmente. Si el PDF mismo está encriptado, la herramienta no puede leerlo en absoluto (ver la nota sobre PDFs encriptados arriba).

¿Por qué el conteo es mayor que las imágenes visibles?

Algunos PDFs usan múltiples XObjects de imagen por imagen visible (p. ej., un canal alfa de soft-mask guardado como una imagen en escala de grises separada). v1 extrae cada uno — el soft-mask es lo que hace que la imagen principal se vea bien al componerse, pero por sí solo aparece como una silueta blanco y negro.

¿Mi PDF se sube?

No. Todo se ejecuta en tu navegador — tu PDF se parsea por pdfjs-dist y los bitmaps de imagen se renderizan vía canvas, todo del lado del cliente. Ninguna petición de red se dispara.

¿Qué tan grande puede ser el PDF?

Hasta unos 100 MB de PDF antes de que el navegador empiece a sentirse lento. El límite duro es la memoria de tu pestaña — si la extracción OOMs, divide el PDF vía /pdf-split y ejecuta cada sección por separado.