Python – Extraer imágenes documento PDF

Vamos un ejemplo en Python para extraer imágenes de un documento PDF con la librería MyMuPDF.

Python tutorial

Instalación librería PDF

Para poder trabajar con documentos PDF en Python hay varias librerías, nosotros hemos elegido PyMuPdf. Para instalarla, deberemos ejecutar la siguiente instrucción en consola:

pip install --upgrade pymupdf

Utilizamos PIP para instalar la librería. Podemos ver una captura como ejemplo:

Extraer imágenes de PDF

Al igual que hicimos en el ejemplo en Python para extraer el texto de un documento PDF, en éste veremos un ejemplo en Python para extraer imágenes de un documento PDF con la librería MyMuPDF

doc = fitz.open("test.pdf") # Abrimos documento

for page_index in range(len(doc)): # Miramos todas las páginas del PDF
	page = doc[page_index] # Tratamos la página
	image_list = page.get_images() # Miramos todas las imágenes de la página

	# Mostramos el número de imágenes encontradas
	if image_list:
		print(f"Encontradas {len(image_list)} imágenes en página {page_index}")
	else:
		print("Esta página no contiene imágenes", page_index)

	for image_index, img in enumerate(image_list, start=1): # Enumeramos páginas
		xref = img[0] # XREF de la imagen
		pix = fitz.Pixmap(doc, xref) # creamos Pixmap

		if pix.n - pix.alpha > 3: # CMYK: convertimos a RGB
			pix = fitz.Pixmap(fitz.csRGB, pix)

		pix.save("page_%s-image_%s.png" % (page_index, image_index)) # guardamos
		pix = None

Vamos leyendo todas las páginas del documento PDF, y página a página extraemos las imágenes y las vamos guardando como fichero PNG.

Puede optimizarse más y trabajar el almacenar las imágenes en otro formato de imágen, editarlas para cambiar las dimensiones…. pero eso lo trataremos en otro artículo.

Espero que os haya sido de utilidad. Y ya podéis completar el código Python para mostrar un menú por consola para ir creando un scrypt de utilidades para ficheros PDF.

Como empecé la casa por la ventana, me he apuntado el facilitar la herramienta básica para desarrollar en Python, el editor. En nuestro caso, hablaremos de PyCharm Community.

Més información