Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
PDF (Formato de Documento Portátil) es el formato de archivo más popular para transferir datos a través de internet, ya que preserva el formato del contenido y ayuda a asegurar 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?
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. Descarga e instala la última versión desde el 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.
Instale la biblioteca Python para convertir PDF en imagen.
Cargue un archivo PDF existente desde cualquier ubicación.
Utilizar métodos de conversión.
Iterar por las páginas del fichero.
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.
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:
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 anterior muestra que solo envuelve pdftoppm
para convertir PDF a imágenes y funcionaba solo 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 Instalación Preferido) es el gestor de paquetes para 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 lugar en la línea de comandos, Python debe estar agregado al PATH. Para Python 3+, se recomienda utilizar pip3 ya que es la versión actualizada de pip.
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.
Los usuarios de Windows pueden descargar la versión más reciente y actualizada de Poppler aquí: @oschwartz10612 versión. A continuación, tendrá que añadir la carpeta bin a la variable de entorno PATH.
Los usuarios de Mac también tendrán que instalar Poppler. Se puede instalar usando Brew:
brew install poppler
La mayoría de las distribuciones de Linux vienen con las utilidades de línea de comandos pdftoppm
y pdftocairo
. Si estas utilidades no están instaladas, puedes usar el gestor de paquetes para instalar poppler-utils
.
conda
)poppler
: :InstallCmd conda install -c conda-forge poppler
:InstallCmd pip install pdf2image
Ahora que todo está listo, empecemos con el código para convertir PDFs en imágenes.
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")
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.
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.
El siguiente código importará el módulo fitz
de PyMuPDF, para que podamos convertir el PDF en 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()
En el código anterior, el nombre de archivo se pasa como un argumento al método fitz.open
para abrir el archivo. A continuación, hago un bucle a través de 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:
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