Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Este artículo explorará cómo ver archivos PDF en Python utilizando la biblioteca IronPDF.
IronPDF es una potente biblioteca de Python que permite a los desarrolladores trabajar con archivos PDF mediante programación. Con IronPDF, puede generar, manipular y extraer fácilmente datos de documentos PDF, lo que la convierte en una herramienta versátil para diversas tareas relacionadas con PDF. Tanto si necesita crear PDFs desde cero, modificar PDFs existentes o extraer contenido de PDFs, IronPDF le ofrece un completo conjunto de funciones para simplificar su flujo de trabajo.
Algunas de las características de la biblioteca IronPDF for Python son:
*Crear nuevo archivo PDFdesde cero usando HTML o URL
Girar páginas PDF
*Extraer texto, metadatos e imágenes de archivos PDF
Convierte archivos PDF a otros formatos
*Archivos PDF seguroscon contraseñas y restricciones
Nota: IronPDF produce un archivo de datos PDF con marca de agua. Para eliminar la marca de agua, necesita una licencia de IronPDF. Si desea utilizar una versión con licencia de IronPDF, visite la páginaSitio web de IronPDF aobtener una clave de licencia.
Antes de trabajar con IronPDF en Python, hay algunos requisitos previos:
Instalación de Python: Asegúrese de que tiene Python instalado en su sistema. IronPDF es compatible con las versiones Python 3.x, así que asegúrese de tener una instalación Python compatible.
:InstallCmd pip install ironpdf
:InstallCmd pip install tkinter
:InstallCmd pip install pillow
Entorno de desarrollo integrado(IDE): El uso de un IDE para gestionar proyectos de Python puede mejorar enormemente la experiencia de desarrollo. Ofrece funciones como la finalización de código, la depuración y un flujo de trabajo más ágil. Un IDE popular para el desarrollo de Python es PyCharm. Puede descargar e instalar PyCharm desde el sitio web de JetBrains(https://www.jetbrains.com/pycharm/).
Después de instalar PyCharm IDE, cree un proyecto PyCharm Python siguiendo los siguientes pasos:
Inicie PyCharm: Abra PyCharm desde el lanzador de aplicaciones de su sistema o desde el acceso directo del escritorio.
Crear un nuevo proyecto: Haga clic en "Crear nuevo proyecto" o abra un proyecto Python existente.
PyCharm IDE
Configure los ajustes del proyecto: Proporcione un nombre para su proyecto y elija la ubicación para crear el directorio del proyecto. Seleccione el intérprete de Python para su proyecto. A continuación, haga clic en "Crear".
Crear un nuevo proyecto Python
Para empezar, importe las bibliotecas necesarias. En este caso, se necesitarán las bibliotecas os
, shutil
, ironpdf
, tkinter
y PIL
. Las bibliotecas os
y shutil
se utilizan para las operaciones con archivos y carpetas, ironpdf
es la biblioteca para trabajar con archivos PDF, tkinter
se utiliza para crear la interfaz gráfica de usuario(GUI)y el PIL se utiliza para la manipulación de imágenes.
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
A continuación, define una función llamada convert_pdf_to_images
. Esta función toma como entrada la ruta del archivo PDF. Dentro de la función, se utiliza la biblioteca IronPDF para cargar el documento PDF desde el archivo. A continuación, se especifica una ruta de carpeta para almacenar los archivos de imagen extraídos. El método pdf.RasterizeToImageFiles
de IronPDF se utiliza para convertir cada página PDF del PDF en un archivo de imagen y guardarlo en la carpeta especificada. Y se utiliza una lista para almacenar las rutas de las imágenes. El ejemplo de código completo es el siguiente:
def convert_pdf_to_images(pdf_file):
pdf = ironpdf.PdfDocument.FromFile(pdf_file)
# Extract all pages to a folder as image files
folder_path = "images"
pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
# List to store the image paths
image_paths = []
# Get the list of image files in the folder
for filename in os.listdir(folder_path):
if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
image_paths.append(os.path.join(folder_path, filename))
return image_paths
Para extraer texto de documentos PDF, visitepágina de ejemplos de código.
Para limpiar los archivos de imagen extraídos cuando se cierra la ventana de la aplicación, defina una función on_closing
. Dentro de esta función, utilice la función shutil.rmtree()para borrar toda la carpeta
images`. A continuación, establezca esta función como el protocolo que se ejecutará cuando se cierre la ventana. El siguiente código ayuda a lograr la tarea:
def on_closing():
# Delete the images in the 'images' folder
shutil.rmtree("images")
window.destroy()
window.protocol("WM_DELETE_WINDOW", on_closing)
Ahora, vamos a crear la ventana principal de la interfaz gráfica de usuario utilizando el Tk()en la ventana "Visor de imágenes", el constructor define el título de la ventana como "Visor de imágenes" y define el parámetro
on_closing()` como el protocolo para manejar el cierre de ventanas.
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)
Para mostrar las imágenes y permitir el desplazamiento, cree un widget Canvas
. El widget Canvas
está configurado para llenar el espacio disponible y expandirse en ambas direcciones utilizando pack(side=IZQUIERDO, fill=AMBOS, expand=Verdadero)
. Además, cree un widget Scrollbar
y configúrelo para controlar el desplazamiento vertical de todas las páginas y el lienzo.
canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
canvas.bind("<Configure>", lambda e: canvas.configure(
scrollregion=canvas.bbox("all")))
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
int(-1*(e.delta/120)), "units"))
A continuación, crea un widget Frame
dentro del lienzo para contener las imágenes utilizando create_window()
para colocar el marco dentro del lienzo. El (0, 0)
y el parámetro anchor='nw'
aseguran que el marco comienza en la esquina superior izquierda del lienzo.
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
El siguiente paso es llamar a la función convert_pdf_to_images()
con el nombre de la ruta del archivo PDF de entrada. Esta función extrae las páginas PDF como imágenes y devuelve una lista de rutas de imágenes. Recorriendo las rutas de las imágenes y cargando cada una de ellas mediante la función Image.open()en el método
PhotoImagede la biblioteca PIL, se crea un objeto
PhotoImageutilizando
ImageTk.PhotoImage(). A continuación, cree un widget
Label` para mostrar la imagen.
images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
image = Image.open(image_path)
photo = ImageTk.PhotoImage(image)
label = Label(frame, image=photo)
label.image = photo # Store a reference to prevent garbage collection
label.pack(pady=10)
El archivo de entrada
Por último, vamos a ejecutar el bucle de eventos principal utilizando window.mainloop()
. Esto garantiza que la ventana GUI permanezca abierta y responda hasta que el usuario la cierre.
window.mainloop()
El resultado de la interfaz de usuario
En este tutorial se explica cómo visualizar documentos PDF en Python con la herramientaIronPDF biblioteca. Cubre los pasos necesarios para abrir un archivo PDF y convertirlo en una serie de archivos de imagen, y luego mostrarlos en un lienzo desplazable, y manejar la limpieza de las imágenes extraídas cuando se cierra la aplicación.
Para obtener más información sobre la biblioteca IronPDF for Python, consulte el documentodocumentación.
Descargar e instalarIronPDF for Python biblioteca y también obtener unprueba gratuita para probar su funcionalidad completa en el desarrollo comercial.
9 productos API .NET para sus documentos de oficina