Convierta imágenes a PDF usando Tkinter – Python

Requisito previo: Tkinter , img2pdf

Python ofrece múltiples opciones para desarrollar GUI (interfaz gráfica de usuario). De todos los métodos GUI, Tkinter es el método más utilizado. Es una interfaz estándar de Python para el kit de herramientas Tk GUI que se envía con Python. Python con Tkinter es la forma más rápida y sencilla de crear aplicaciones GUI. En este artículo, aprenderemos cómo convertir varias imágenes en varios PDF o varias imágenes en un solo PDF usando Tkinter en Python. Para la conversión, utilizaremos el Módulo img2pdf .

img2pdf es un paquete Python de código abierto para convertir imágenes a formato pdf. Incluye otro módulo Pillow que también se puede usar para mejorar la imagen (Brillo, contraste y otras cosas)

Para la instalación ejecuta este comando en tu terminal:

pip install img2pdf

Entendamos la implementación paso a paso:

Paso 1: crea una ventana de Tkinter y agrega botones, etiquetas, etc.

Python3

# Import Module
from tkinter import *
  
# Create Object
root = Tk() 
# set Geometry
root.geometry('400x200')
  
  
# Add Labels and Buttons
Label(root, text = "IMAGE CONVERSION", 
      font = "italic 15 bold").pack(pady = 10)
  
Button(root, text = "Select Images", font = 14).pack(pady = 10)
  
frame = Frame()
frame.pack(pady = 20)
  
Button(frame, text = "Image to PDF", relief = "solid",
                   bg = "white", font = 15).pack(side = LEFT,padx = 10)
  
Button(frame, text = "Images to PDF", relief = "solid",
                 bg = "white",font = 15).pack()
  
# Execute Tkinter
root.mainloop()

Paso 2: Crearemos tres funciones; seleccionar_archivo() , imagen_a_pdf() , imágenes_a_pdf()

  • select_file: Te ayudará a seleccionar el archivo 
  • image_to_pdf: se utiliza para convertir un archivo de imagen en un archivo pdf
  • images_to_pdf: se utiliza para convertir varios archivos de imagen en un archivo pdf

Python3

def select_file():
    global file_names
    file_names = askopenfilenames(initialdir = "/",title = "Select File")
  
# IMAGE TO PDF
def image_to_pdf():
    for index, file_name in enumerate(file_names):
        with open(f"file {index}.pdf", "wb") as f:
            f.write(img2pdf.convert(file_name))
  
# IMAGES TO PDF
def images_to_pdf():
    with open(f"file.pdf","wb") as f:
        f.write(img2pdf.convert(file_names))

A continuación se muestra la implementación:

Python3

# Import Module
from tkinter import *
from tkinter.filedialog import askopenfilenames
import img2pdf
  
# Create Object
root = Tk() 
# set Geometry
root.geometry('400x200')
  
def select_file():
    global file_names
    file_names = askopenfilenames(initialdir = "/",
                                  title = "Select File")
  
# IMAGE TO PDF
def image_to_pdf():
    for index, file_name in enumerate(file_names):
        with open(f"file {index}.pdf", "wb") as f:
            f.write(img2pdf.convert(file_name))
  
# IMAGES TO PDF
def images_to_pdf():
    with open(f"file.pdf", "wb") as f:
        f.write(img2pdf.convert(file_names))
  
# Add Labels and Buttons
Label(root, text = "IMAGE CONVERSION",
      font = "italic 15 bold").pack(pady = 10)
  
Button(root, text = "Select Images",
       command = select_file, font = 14).pack(pady = 10)
  
frame = Frame()
frame.pack(pady = 20)
  
Button(frame, text = "Image to PDF",
       command = image_to_pdf,
       relief = "solid",
       bg = "white", font = 15).pack(side = LEFT, padx = 10)
  
Button(frame, text = "Images to PDF",
       command = images_to_pdf, relief = "solid",
       bg = "white", font = 15).pack()
  
# Execute Tkinter
root.mainloop()

Producción:

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *