AgusPDFKit: Herramienta para Manipular PDFs Python

Manipular archivos PDF de forma programática es una de las tareas más comunes y demandadas en el desarrollo de software.

AgusPDFKit es una potente y moderna aplicación de escritorio desarrollada en Python que reúne 12 herramientas esenciales para la gestión, combinación, conversión y edición de documentos PDF. Todo el sistema opera bajo una interfaz gráfica de usuario fluida, reactiva y con soporte nativo para tema oscuro.

A diferencia de otros scripts convencionales que se ejecutan únicamente por consola de comandos, este proyecto aprovecha las capacidades del framework Flet para ofrecer una experiencia visual multiplataforma e intuitiva. A continuación, se detalla la estructura del sistema, las librerías utilizadas y el proceso para poner en marcha este entorno de herramientas local.

Características y Funcionalidades

Las herramientas de la aplicación se encuentran organizadas de manera centralizada en tres categorías principales dentro de la barra lateral de navegación:

1. Combinar

  • Unir PDFs: Permite seleccionar múltiples archivos PDF y unirlos secuencialmente en un único documento de salida.
  • Dividir PDF: Ofrece dos métodos de segmentación: la separación de cada página en archivos individuales o la extracción por bloques mediante rangos personalizados definidos por el usuario (por ejemplo, 1-3,5,7-9).

2. Convertir

  • PDF a Word: Convierte un PDF en un archivo editable de Microsoft Word (.docx), conservando el formato y la distribución del texto original.
  • PDF a Excel: Extrae las tablas de cada página del PDF y las guarda organizadas en hojas separadas dentro de un libro de Excel (.xlsx). Si no detecta tablas, almacena el texto plano estructurado.
  • PDF a Imagen: Convierte cada página del PDF a formato PNG o JPEG, permitiendo elegir la resolución o calidad deseada entre 96 DPI, 150 DPI o 300 DPI.
  • Imágenes a PDF: Convierte un conjunto de imágenes (PNG, JPG, JPEG, BMP, TIFF, WEBP) en un solo documento PDF, asignando una imagen por página y procesando transparencias.
  • URL a PDF: Renderiza y convierte cualquier sitio web público o página HTML a formato PDF conservando la maquetación original del navegador.

3. Editar

  • Gestionar páginas: Herramientas integradas para eliminar páginas específicas indicando sus índices (por ejemplo, 1,3,5), rotar las páginas en ángulos de 90°, 180° o 270°, o reordenar la secuencia ingresando el orden deseado.
  • Comprimir PDF: Reduce el tamaño del archivo PDF optimizando los flujos de contenido internos y eliminando metadatos innecesarios.
  • Contraseña: Permite encriptar el PDF solicitando una contraseña para su visualización, o remover la protección de un archivo bloqueado si se conoce la clave original.
  • Marca de agua: Agrega un texto de marca de agua diagonal y semitransparente centrado de forma automatizada en todas las páginas del documento.
  • Extraer texto: Recupera todo el contenido de texto legible del PDF y lo exporta hacia un archivo de texto plano estructurado (.txt) dividido por páginas.

Tecnologías y Librerías Utilizadas

El éxito de AgusPDFKit radica en la integración de las librerías más eficientes y consolidadas para la manipulación de documentos en el ecosistema Python:

  • Flet: Framework encargado de construir la interfaz gráfica de usuario (GUI) reactiva y multiplataforma.
  • pypdf: Utilizado para las operaciones de unión, división, rotación, reordenamiento, encriptación, desencriptación y compresión de flujos de páginas.
  • pdf2docx y pdfplumber: Encargadas de la conversión avanzada a procesadores de texto y de la extracción estructurada de tablas.
  • openpyxl: Utilizada para la creación y formateo de los libros de cálculo automatizados en Excel.
  • pypdfium2: Renderizado de páginas PDF a imágenes de alta velocidad mediante el motor de PDFium.
  • img2pdf y Pillow: Procesamiento preliminar de imágenes y conversión a PDF sin pérdida de calidad.
  • pdfkit: Renderizado de páginas web (requiere la dependencia externa de wkhtmltopdf instalada en el sistema).
  • ReportLab: Generación dinámica de capas para la inserción de las marcas de agua de texto diagonal.

Descarga

Requisitos Técnicos e Instalación

Para ejecutar el script o estudiar su código fuente, es necesario contar con un entorno local que cumpla con los siguientes requisitos:

1. Python

Asegúrate de tener instalado Python 3.9 o cualquier versión superior.

2. Dependencia externa (wkhtmltopdf)

La función de conversión de URL a PDF requiere el binario oficial de wkhtmltopdf:

  • Descarga el instalador correspondiente a tu sistema operativo desde su sitio web oficial.
  • Instálalo y asegúrate de que el ejecutable esté configurado en las variables de entorno de tu sistema (PATH) o colócalo directamente junto al archivo main.py.

3. Instalar librerías de Python

Para instalar todas las dependencias necesarias de forma masiva en tu entorno virtual, ejecuta el siguiente comando en la terminal:

Bash

pip install flet pypdf pdf2docx pdfplumber openpyxl pypdfium2 img2pdf pdfkit reportlab Pillow

Una vez completada la instalación de los paquetes, el script principal de la interfaz gráfica se inicializa desde el directorio raíz ejecutando el comando:

Bash

python main.py

Compilación a Aplicación de Escritorio Independiente

Una de las grandes ventajas de estructurar el proyecto con esta arquitectura es la posibilidad de empaquetar el código para distribuirlo como un archivo ejecutable portátil (como un archivo .exe en Windows o una aplicación .app en macOS) sin necesidad de que el usuario final tenga Python instalado.

El proceso de empaquetado requiere la herramienta PyInstaller. Puedes realizar la compilación directamente utilizando los asistentes integrados del framework mediante la siguiente secuencia de comandos:

Bash

pip install pyinstaller
flet pack main.py --icon resources/icon.png --name "AgusPDFKit"

Recuerda incluir el ejecutable de wkhtmltopdf en el mismo directorio si quieres empaquetar y utilizar la herramienta de conversión web de forma totalmente portable. El código fuente de este proyecto se distribuye bajo licencias abiertas, lo que permite a desarrolladores auditar los módulos, extender las herramientas de edición o utilizar la estructura como base para sus propios desarrollos.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *