HERRAMIENTAS PDF DE PYTHON

Cómo convertir PDF a imagen en Python

Actualizado 30 de junio, 2023
Compartir:

PDF (Formato de documento portátil) es el formato de archivo más popular para transferir datos por Internet, ya que conserva el formato del contenido y ayuda a proteger los datos con permisos de seguridad. Hay situaciones en las que necesitamos convertir archivos PDF a imágenes JPG o a cualquier otro formato de imagen como PNG, BMP, TIFF o GIF. Hay un montón de recursos en línea disponibles para la conversión de JPG, pero ¿cómo sería genial crear nuestra propia herramienta de conversión de PDF a imagen en Python?

¿Qué es Python?

Python es un lenguaje de programación de alto nivel que se utiliza para crear aplicaciones de software, sitios web, automatizar tareas, realizar análisis de datos y llevar a cabo tareas de Inteligencia Artificial y Aprendizaje Automático. También es un lenguaje de scripting, ya que es interpretado, lo que lo hace más potente en términos de desarrollo rápido y pruebas.

Para crear un conversor de PDF a imagen, necesitamos tener Python 3+ instalado en el ordenador. Descargue e instale la última versión desde sitio web oficial.

En este artículo, crearemos nuestra propia aplicación de conversión de imágenes utilizando las librerías PDF a imagen de Python. Para ello, utilizaremos dos de las bibliotecas más populares de Python: PDF2Image y PyMuPDF.

Cómo convertir archivos PDF en archivos de imagen en Python

  1. Instale la biblioteca Python para convertir PDF en imagen.
  2. Cargue un archivo PDF existente desde cualquier ubicación.
  3. Utilizar métodos de conversión.
  4. Iterar por las páginas del fichero.
  5. Guarde cada página como imagen JPG o PNG utilizando el método de guardado.

Crear un nuevo archivo Python

  1. Abre la aplicación Python IDLE y pulsa las teclas Ctrl + N. Se abrirá el editor de texto. Para ello, puede utilizar el editor de texto que prefiera.
  2. Guarde el archivo como pdf2image.py, en la misma ubicación que el archivo PDF que desea convertir en imágenes.

    El archivo PDF de entrada que vamos a utilizar contiene 28 páginas y es el siguiente:

    Cómo convertir PDF a imagen en Python: Figura 1

Convertir archivos PDF en archivos de imagen con la biblioteca PDF2Image

1. Instalar la biblioteca PDF2Image Python

PDF2Image es un módulo que envuelve pdftocairo y pdftoppm. Funciona en Python 3.7+ para convertir PDF a un objeto de imagen PIL. Su historial de versiones anteriores muestra que sólo envuelve pdftoppm para convertir PDF a imágenes y sólo funcionaba en Python 3+.

Para instalar el paquete pdf2image, abra el símbolo del sistema de Windows o Windows PowerShell y utilice el siguiente comando pip:

pip install pdf2image

Pip (**Programa de instaladores preferentes) es el gestor de paquetes de Python. Descarga e instala paquetes de software de terceros que ofrecen características y funcionalidades que no se encuentran en la biblioteca estándar de Python.

Nota: Para ejecutar este comando desde cualquier parte de la línea de comandos, Python debe ser añadido al PATH. Para Python 3+, se recomienda utilizar pip3 ya que es la versión actualizada de pip.

2. Instalar Poppler

Poppler es una biblioteca gratuita y de código abierto para trabajar con archivos PDF. Se utiliza para representar archivos PDF, leer su contenido y modificarlo. Es comúnmente utilizado por los usuarios de Linux. Sin embargo, para Windows, necesitaremos descargar la última versión de Poppler.

Para Windows

Los usuarios de Windows pueden descargar la última versión actualizada de Poppler aquí: @oschwartz10612 versión. A continuación, tendrá que añadir la carpeta bin a la variable de entorno PATH.

Para Mac

Los usuarios de Mac también tendrán que instalar Poppler. Puede instalarse mediante Brew:

brew install poppler

Para Linux

La mayoría de las distribuciones de Linux incluyen las utilidades de línea de comandos pdftoppm y pdftocairo. Si estas utilidades no están instaladas, puede utilizar el gestor de paquetes para instalar poppler-utils.

Para plataformas independientes (usando conda)

  1. Instala poppler:
    :InstallCmd conda install -c conda-forge poppler
  1. Instalar pdf2image:
    :InstallCmd pip install pdf2image

Ahora que todo está listo, empecemos con el código para convertir PDFs en imágenes.

3. Código para convertir archivos PDF en archivos de imagen

El siguiente código realizará la conversión de imagen del archivo PDF de entrada:

from pdf2image import convert_from_path

print("Please Wait while the file is being loaded.")
file = convert_from_path('file.pdf')

for i in range(len(file)):
    # save pdf as jpg
    print("Progress: " + str(round(i/len(file) * 100)) + "%")
    file [i].save('page'+ str(i+1) +'.jpg', 'JPEG')

print("Conversion Successful")
PYTHON

En el código anterior, primero abrimos el archivo utilizando el método _convert_frompath. Este método abre el archivo situado en la ruta especificada. A continuación, recorremos en bucle cada una de las páginas del archivo PDF para convertirlas en imágenes JPG. Por último, se utiliza el método save para guardar cada página convertida como un archivo de imagen JPG. Ahora, ejecute el programa y espere a que se complete la conversión.

Los archivos de imagen de salida se guardan en la misma carpeta que el programa.

Cómo convertir PDF a imagen en Python: Figura 2

Cómo convertir PDF a imagen en Python: Figura 3

Convertir archivos PDF en imágenes con la biblioteca PyMuPDF

1. Instalar la biblioteca Python PyMuPDF

PyMuPDF es una extensión en Python de MuPDF, un visor, renderizador y conjunto de herramientas ligero para libros electrónicos, PDF y XPS. Puede utilizarse para convertir PDF a otros formatos como JPG o PNG. PyMuPDF funciona en versiones Python 3.7+.

Para instalar el paquete PyMuPDF, abra el símbolo del sistema de Windows o Windows PowerShell y utilice el siguiente comando pip:

pip3 install pymupdf

Tenga en cuenta que PyMuPDF no requiere bibliotecas adicionales como lo hace el paquete PDF2Image.

2. Código para convertir archivos PDF en imágenes

El siguiente código importará el módulo fitz de PyMuPDF, para que podamos convertir el PDF a imágenes:

import fitz

doc = fitz.open("file.pdf")

for x in range(len(doc)):
    page = doc.load_page(x)  # number of page
    pix = page.get_pixmap()
    output = "output/pdfpage"+str(x+1)+".png" # first create the output folder in the destination
    pix.save(output)

doc.close()
PYTHON

En el código anterior, el nombre del archivo se pasa como argumento al método fitz.open para abrir el archivo. A continuación, recorro todo el documento y cargo cada página por separado. El método get_pixmap se utiliza para convertir cada página del documento en píxeles de imagen, y la imagen resultante se guarda en la carpeta de salida utilizando el método save. Por último, el documento abierto se cierra para liberar memoria.

En comparación con PDF2Image, PyMuPDF es más rápido al convertir PDF a PNG. PDF2Image puede ser lento para el formato PNG debido a su ratio de compresión.

El resultado es el mismo que el de PDF2Image:

Cómo convertir PDF a imagen en Python: Figura 4

Conversiones de PDF a imagen en C#

Biblioteca IronPDF

IronPDF es una biblioteca utilizada para generar, leer y manipular archivos PDF. Su especialidad es la conversión de HTML a PDF con la ayuda del motor Chromium. Esta característica lo hace popular entre los desarrolladores que necesitan convertir archivos HTML o URL en documentos PDF. Además, proporciona conversión de varios formatos a archivos PDF.

También puede rasterizar un archivo PDF en imágenes utilizando sólo dos líneas de código. El siguiente código muestra cómo convertir PDF a diferentes formatos de imagen:

from ironpdf import *

# One or more images as a list. This example selects all JPEG images in a specific 'assets' folder.
image_files = [os.path.join("assets", f) for f in os.listdir("assets") if f.lower().endswith(('.jpg', '.jpeg'))]

directory_list = List [str]()
for i in range(len(image_files)):
    directory_list.Add(image_files [i])

# Converts the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(directory_list).SaveAs("composite.pdf")

# Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
PYTHON

Descargar IronPDF y pruébelo para gratis .

< ANTERIOR
Cómo convertir HTML a PDF en Python

¿Listo para empezar? Versión: 2024.6 recién publicada

Instalación pip gratuita Ver licencias >