Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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?
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 desdesitio 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 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.
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 ú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.
Los usuarios de Mac también tendrán que instalarPoppler. Puede instalarse medianteBrew:
brew install poppler
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
.
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 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()
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:
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
9 productos API .NET para sus documentos de oficina