Aug 14, 2023
Cómo convertir una imagen a PDF usando Python
Organice sus imágenes en archivos PDF y aprenda a usar Tkinter para crear esta práctica utilidad. Desde informes comerciales hasta portafolios de fotografía, a menudo te encontrarás con la necesidad de utilizar imágenes en archivos PDF. Un
Organice sus imágenes en archivos PDF y aprenda a usar Tkinter para crear esta práctica utilidad.
Desde informes comerciales hasta portafolios de fotografía, a menudo te encontrarás con la necesidad de utilizar imágenes en archivos PDF. Un conversor de imagen a PDF puede ayudar a agilizar el proceso. Si bien hay muchas herramientas gratuitas disponibles en línea, la necesidad de que usted cargue imágenes puede ser un problema de privacidad o seguridad.
En su lugar, puede crear un conversor de imagen a PDF sin conexión utilizando Python. Seleccione varias imágenes en formato JPG o PNG, obtenga una vista previa y conviértalas a PDF manteniendo el tamaño de la imagen original.
Tkinter es la biblioteca GUI estándar para Python. Ofrece una variedad de widgets como botones, etiquetas y cuadros de texto que facilitan el desarrollo de aplicaciones como un reproductor de música o una herramienta de conversión de peso. Para instalar Tkinter en su sistema, abra una terminal y escriba:
El módulo Pillow es una poderosa biblioteca de imágenes de Python que facilita la realización de operaciones en imágenes como cambiar el tamaño, recortar y filtrar. Al integrar esto con OpenAI API y DALL·E 2, puede generar imágenes usando un mensaje de texto.
Para instalar Pillow, ejecute este comando:
ReportLab es una biblioteca Python de código abierto para generar archivos PDF y gráficos. Tiene varias herramientas que puede utilizar para generar documentos con imágenes, texto y tablas, lo que lo hace útil para generar informes mediante programación. Con esto, puede crear informes comerciales, facturas y certificados y al mismo tiempo agregar una marca de agua de texto. Para instalar ReportLab:
Puede encontrar el código fuente completo para crear el conversor de imagen a PDF usando Python en este repositorio de GitHub.
Importe los módulos necesarios y cree una clase llamadaConvertidor de imagen a PDF . Defina un método constructor que inicialice la clase y tome el objeto de la ventana raíz de Tkinter como argumento. Inicialice una lista vacía para almacenar las rutas de las imágenes que selecciona el usuario. Establezca el título y las dimensiones de la aplicación. Crea dos botones llamadosSeleccionar imágenesyConvertir a PDF.
Pase la ventana en la que desea colocar el botón, el texto que debe mostrar, el comando que debe ejecutar al hacer clic y el formato de fuente que debe aplicar. Organiza los botones usando elembalar()método y darles un relleno de 10 en la dirección vertical.
Defina una etiqueta pasándole la ventana principal donde colocarla, el texto que debe mostrar, el formato de fuente que debe usar y un relleno vertical de 10 (píxeles).
De manera similar, defina un marco para obtener una vista previa de la imagen seleccionada y establezca su ventana principal, ancho y alto. Organízalo con un relleno de 10.
Definir un método,seleccionar_imagenes() . Utilice Tkinterdiálogo de archivoclase para abrir un cuadro de diálogo para seleccionar varias imágenes y almacenarlas en elruta_imágenes lista. Pase el directorio inicial que debe abrir el cuadro de diálogo, el título que debe mostrar y los tipos de archivos que permite seleccionar.
Defina un bucle que repita todas las rutas de las imágenes que el usuario seleccionó. Usa almohadasabierto() método para abrir el archivo de imagen y pasar la dimensión máxima que debe poseer al método de cambio de tamaño. Convierta esta imagen PIL aFotoImagen que sea compatible con Tkinter. Cree una etiqueta que resida en el marco de vista previa que creó anteriormente y muestre la imagen. Utilizar elredmanager para organizar las imágenes en un diseño de cuadrícula con tres columnas.
Definir un método,cambiar el tamaño de la imagen() que cambia el tamaño de la imagen teniendo en cuenta la dimensión de la imagen y la dimensión máxima que definiste anteriormente. Calcule la relación de aspecto y úsela para establecer el nuevo ancho y alto. Utilice el método de cambio de tamaño de PIL para cambiar el tamaño de la imagen manteniendo intacta la relación de aspecto. Utilice la interpolación bilineal como remuestreo para obtener un resultado más fluido.
Definir una función,convertir a PDF() . Utilice el cuadro de diálogo de archivo para solicitar la ruta de destino del PDF. Establezca la extensión predeterminada y el tipo de archivo como.pdf . Utilice el módulo de lienzo de ReportLab para dibujar una página horizontal. Recorra la ruta de las imágenes, ábralas, establezca las dimensiones de la página del PDF igual que las de la imagen y dibuje la imagen desde la esquina superior izquierda con las dimensiones especificadas.
Elmostrar página() El método permite que el PDF pase a la página siguiente. Una vez que el programa complete este proceso, guarde el PDF y muestre un cuadro de mensaje junto con la ruta.
Cree la ventana raíz de Tkinter y pásela a la instancia de clase. Elbucle principal()La función le dice a Python que ejecute el bucle de eventos de Tkinter y escuche los eventos hasta que cierre la ventana.
Junte todo el código y el convertidor de imagen a PDF estará listo para usar.
Al ejecutar la aplicación, verá una ventana con dos botones y un espacio en blanco que le indicará que seleccione las imágenes.
Al hacer clic en elSeleccionar imágenes , aparece una ventana que le pide que elija las imágenes. Puede seleccionar cualquier cantidad de imágenes en cualquier combinación.
Una vez que haya seleccionado las imágenes que desee, verá una vista previa de ellas:
Al hacer clic en el botón Convertir a PDF, puede seleccionar el nombre y la ruta donde desea almacenar el archivo PDF. Una vez que el programa finaliza la conversión, muestra un cuadro de mensaje que dice que ha guardado el PDF seguido del nombre de la ruta. Al abrir el PDF encontrarás que el programa ha convertido las imágenes sin cambiar sus dimensiones.
Puede crear una aplicación PDF completa que realice operaciones como fusionar, comprimir, proteger y desbloquear archivos PDF. Puede crear una función para dividir el PDF en varias páginas, rotarlas, eliminar páginas específicas, ordenarlas y agregar números de página.
También puedes experimentar con otros formatos de archivo para convertir un documento o una presentación a PDF. Varios módulos, como PyPDF2, PDFMiner, fpdf y pdfrw, pueden ayudarlo a lograrlos de manera más conveniente.
Sai Ashish es un ingeniero de software altamente capacitado con experiencia en la industria en codificación, diseño, implementación y depuración de proyectos de desarrollo. Fue líder del Google Developer Students Club y también ocupó el puesto de Jefe Técnico durante sus estudios en la estimada Universidad de Mumbai. India. Está certificado en C++, Java y Python. Desde 2018, comparte sus conocimientos técnicos a través de su pasión por escribir, hablar en sesiones y tutoriales en línea.
Convertidor de imagen a PDFSeleccionar imágenesConvertir a PDFembalar()seleccionar_imagenes()diálogo de archivoruta_imágenesabierto()FotoImagenredcambiar el tamaño de la imagen()convertir a PDF().pdfmostrar página()bucle principal()Seleccionar imágenes