Categoría: Proyectos y aplicaciones

Contenido relacionado con proyectos y aplicaciones.

  • BentoPDF: la herramienta definitiva para PDF

    BentoPDF: la herramienta definitiva para PDF

    Los PDF (Portable Document Format) se utilizan a día de hoy para todo y a veces necesitamos realizar alguna modificación en ellos, convertirlos a otro formato de archivo, combinarlos…
    Sin embargo, es difícil encontrar herramientas que se ajusten a nuestras necesidades y que funcionen correctamente (sin pagar un dineral en licencias —cof, cof, Adobe—). Si a esto le sumamos que Windows no sea tu sistema operativo principal, la cosa se pone aún más complicada.

    En este contexto aparece BentoPDF y lo revoluciona absolutamente todo.

    ¿Qué es BentoPDF?

    BentoPDF es un conjunto de herramientas de manipulación de PDF que opera completamente en el cliente (es decir, en tu navegador) sin necesidad de subir los archivos a un servidor.

    El proyecto se autodefine como un “privacy-first PDF toolkit” (herramienta de PDF con privacidad como pilar) precisamente porque el archivo nunca abandona tu dispositivo, eliminando riesgos asociados al uso de servicios remotos.

    Fue publicado bajo licencia AGPL-3.0 (después de haber sido originalmente Apache 2.0) para proteger la naturaleza libre del proyecto frente a usos que cierren código.

    La comunidad ya lo valora como una alternativa muy interesante frente a otros editores de PDF autohospedados (por ejemplo, frente a Stirling PDF).

    Finalmente, justo la publicación del paso a versión 1.0.0 fue recogida en medios como Heise, destacando cómo BentoPDF incorpora funciones avanzadas como “posterize” (para dividir un PDF en varias páginas para impresión en póster) o “linearize” (optimización para visualización progresiva por web), mejoras en OCR y operaciones por lotes.

    ¿Qué herramientas incluye BentoPDF?

    A continuación te dejo una explicación de algunas de sus funciones más importantes, así como otras muchas otras que pueden ser de utilidad:

    Nombre de la herramientaQué hace / para qué sirveDetalles notables / límites
    Merge PDFs (Combinar PDFs)Permite unir varios documentos PDF en uno solo.Básico, pero muy frecuentemente usado.
    Split PDFs (Dividir PDFs)Separar un PDF en varios archivos (por página, por rangos).Útil para extraer partes específicas de un documento.
    Organize Pages / Reorder / Delete / DuplicateReordenar páginas dentro de un PDF, duplicarlas o eliminarlas.Interfaz visual de arrastrar y soltar facilita esto.
    Extract PagesExtraer uno o varios rangos como nuevo documento PDF.Se diferencia del split en que permite escoger rangos sin fragmentar todo.
    Rotate PDFGirar páginas individuales o todas (por ejemplo, 90°, 180°).Funcionalidad clásica muy útil cuando algunas páginas están escaneadas “al revés”.
    Alternate & Mix / Interleave MergeFusionar dos (o más) PDFs intercalando páginas (una de A, otra de B, etc.).Muy útil para combinar caras y dorsos, o documentos escaneados por separado.
    Posterize PDFDividir un PDF grande en múltiples páginas más pequeñas (por ejemplo, para impresión tipo póster).Este es uno de los añadidos destacados de la versión 1.0.0.
    Compress PDFReducir el tamaño del archivo según calidad / compresión.Fundamental para compartir documentos pesados.
    OCR (Optical Character Recognition)Convertir páginas escaneadas en texto seleccionable / buscable.Mejorado para reconocer caracteres más precisamente con whitelist.
    Linearize (Fast Web View / Optimize para web)Optimizar el PDF para que cargue de forma progresiva al visualizarlo en web.Muy útil cuando el PDF va a publicarse en línea.
    Remove Blank PagesDetectar y eliminar automáticamente páginas que estén en blanco.estén en blanco.
    Una operación de limpieza muy práctica.
    Encrypt / Decrypt / Change PermissionsProteger el PDF con contraseña, eliminar protección, establecer permisos de impresión/copia/edición.Para gestión de seguridad de documentos.
    Redact ContentEliminar de forma permanente contenido sensible (texto, imágenes) del PDF.Importante en documentos legales o privados.
    Add Watermark / Header & Footer / Page NumbersInsertar marcas de agua (texto o imagen), encabezados, pies o numeración personalizada.Herramientas de presentación / personalización típicas para documentos corporativos.
    Edit Metadata / Remove MetadataModificar atributos del PDF (autor, título, palabras clave) o eliminar todos los metadatos.Para privacidad o limpieza de documentos antiguos.
    PDF → Imagen / Imagen → PDFConvertir páginas del PDF a formatos de imagen (JPG, PNG, WebP, etc.), y también transformar imágenes (JPG, PNG, WebP, SVG, TIFF, BMP, HEIC) en PDF.Facilita interoperabilidad entre formatos visuales y documentos.
    PDF → Greyscale
    Convertir un PDF a escala de grises (blanco-negro).
    Útil para versiones de impresión en blanco y negro.
    Flatten PDF / Remove Annotations“Aplanar” campos de formulario o anotaciones para que se vuelvan parte fija del documento, eliminar comentarios, resaltados, etc.Útil para asegurar que los destinatarios no puedan modificar anotaciones.
    Sanitize PDFEliminar contenido potencialmente malicioso del PDF, limpiar estructuras sospechosas.Seguridad adicional frente a PDFs que pudieran ocultar código o elementos dañinos.
    Add AttachmentsAdjuntar otros archivos dentro del PDF (por ejemplo, incluir documentos auxiliares).Función incorporada en la versión 1.0.0 como destacado

    ¿Cómo utilizo BentoPDF?

    Como se indicaba antes, BentoPDF es una aplicación a nivel de cliente, por lo que todo ocurre a nivel de navegador, pero para poder acceder, hay que hacerlo a través del mismo.

    Para ello existen dos opciones principales:

    • Self-Hosted manual: en el repositorio de GitHub encontramos los comandos necesarios para tener esta aplicación en nuestro ordenador y lanzarla cada vez que queramos. Muy útil si queremos acceder a ella sin conexión a internet (la aplicación está alojada en nuestro propio dispositivo, por lo que no necesitamos conexión a internet para acceder a ella). Docker debe estar instalado en nuestro dispositivo.
    • Self-Hosted en nuestro Homelab: si disponemos de un HomeLab (ya sea con Proxmox, CasaOS o cualquier otra tecnología) podemos alojar la aplicación igual que en el caso manual, pero de esta manera siempre estará disponible a través de internet para no tener que desplegarla cada vez que queramos utilizarla. Este método también requiere tener Docker instalado en nuestro laboratorio (que presupongo que ya tienes), y no es tan útil en caso que de no estemos conectados a internet.

    Como siempre, elige el método que más te guste y te sea más cómodo. Si quieres probar la aplicación sin tener que desplegarla, puedes utilizar mi instancia. Por supuesto, es completamente gratis, puedes usarla tantas veces como quieras y como la propia aplicación indica, no se guarda nada en el servidor (además de que no recopilo ningún tipo de dirección IP o datos cuando accedes a mis sitios).

    Conclusión

    BentoPDF representa un movimiento interesante hacia la descentralización del procesamiento de documentos: no dependes de servicios externos, no comprometes tu privacidad, y al mismo tiempo te da una suite potente para trabajar con documentos PDF complejos. En un mundo donde los servicios en línea proliferan —a veces con consecuencias en la privacidad— herramientas como BentoPDF son como un antídoto: recuperas el control.

    No es perfecta (ninguna herramienta lo es), pero su diseño libre, su arquitectura moderna y su enfoque centrado en el usuario le dan una posición fuerte en el ecosistema. Con el apoyo de la comunidad y si se pulen los casos límite, podría ser la herramienta de referencia en edición de PDF local y segura.

    Si quieres más información, puedes consultar su repositorio oficial en GitHub, así como encontrarás más información en la pestaña «About» de la aplicación.

    Como siempre, muchas gracias por haber leído este artículo hasta el final. Cualquier comentario, corrección o aportación es más que bienvenida. ¡Muchas gracias y 73s!

  • Nueva versión del multi_downloader publicada (v0.2).

    Buenas tardes a todos. Me agrada anunciar que se ha publicado una nueva versión del proyecto en el repositorio de GitHub. Cabe destacar que esta sigue siendo una versión preliminar y puede contener varios errores o bugs. Pido disculpas de antemano. 🙂

    Características de la v0.2

    Se ha implementado el «downloader» para Instagram, permitiendo:

    • Descarga de fotos (desde un post).
    • Descarga de vídeos (desde un post).
    • Descarga de reels.

    Es importante mencionar que, por ahora, esta funcionalidad solo está disponible para cuentas públicas. Esto significa que si intentamos descargar contenido de una cuenta privada, la versión actual no lo permitirá. Sin embargo, la biblioteca utilizada (instaloader) permite iniciar sesión en Instagram, lo que facilitará el acceso a elementos de cuentas no públicas que sigamos.

    Esta característica se implementará en el futuro, pero primero debo asegurarme de que sea segura (no quisiera exponer cuentas ajenas xD).

    Proceso de funcionamiento

    1. Introducción del enlace a descargar.
    2. Obtención del elemento.
    3. Selección del directorio de destino donde se guardará el archivo (si no se especifica, se utilizará el directorio Usuario/Descargas).
    4. Elección del nombre del archivo (si no se proporciona uno, se usará el identificador del elemento en Instagram, conocido como shortcode).

    Como siempre, aquí tenéis el enlace al repositorio si queréis revisar los cambios realizados a nivel de código.

    Si alguien quiere colaborar en el proyecto programando, probando el código y reportando los posibles fallos o sugiriendo futuras características, estaré encantado de recibir la ayuda. Solo debes ponerte en contacto conmigo a través de mis redes sociales, publicando algo en el repositorio o a través de email a la dirección [email protected].

    Muchas gracias y hasta la próxima, ¡73s de Juanchi EA1FSC!

  • ¡Primera versión del multi_downloader publicada (v0.1)!

    Descripción del proyecto

    Como aparece en Proyectos y aplicaciones, el «Multi Downloader» es un programa en Python que permite la descarga de archivos desde múltiples fuentes: YouTube, Instagram, X (antes Twitter) y demás.

    Está integrado en Python (de momento en la versión 3.12.4), por lo que en principio es ejecutable en cualquier tipo de SO (Windows, MacOS o Linux).

    Características de la v0.1

    En esta primera versión publicada, ya se puede descargar desde YouTube en tres formatos distintos:

    • Vídeo (sin audio asociado) en varios formatos.
    • Audio en varios formatos.
    • Vídeo + audio (en formato mp4 o webm).

    ¿Por qué esta diferencia de formatos? YouTube funciona con el llamado DASH (Dynamic Adaptive Streaming over HTTPS) o en español, Streaming Adaptativo Dinámico sobre HTTPS. Esto significa que YouTube tiene almacenados varios archivos (o streams) del mismo elemento tanto de audio como de vídeo, y puede combinarlos en función de la conexión de Internet del usuario, ofreciendo así siempre la mejor fluided a la hora de ver vídeos en la plataforma.

    Sin embargo, YouTube sí que tiene algunos archivos donde el vídeo y el audio están juntos, es el llamado progressive stream.

    Esta primera parte del programa permite la descarga de los vídeos de YouTube en los siguientes formatos mediante los siguientes pasos:

    1. Introducción del enlace y búsqueda del elemento.
    2. Muestra de los datos para confirmar que el URL introducido es el deseado.
    3. Elección del tipo de elemento que quiere descargarse (vídeo, audio o vídeo + audio)
    4. Elección del stream deseado para descargar.
    5. Selección de la ubicación de descarga (por defecto, la carpeta ‘Descargas’ del dispositivo).
    6. Selección del nombre del archivo (por defecto, el título del vídeo’).

    Este «youtube_downloader» está basado en la librería pytube (https://pytube.io/en/latest/), aunque debido a un error en la última versión de dicha librería que impide la descarga se está utilizando pytubefix (https://pytubefix.readthedocs.io/en/latest/) hasta que la original vuelva a funcionar.

    El código de la aplicación está disponible en GitHub.

    Si alguien quiere colaborar en el proyecto programando, probando el código y reportando los posibles fallos o sugiriendo futuras características, estaré encantado de recibir la ayuda. Solo debes ponerte en contacto conmigo a través de mis redes sociales, publicando algo en el repositorio o a través de email a la dirección [email protected].

    Muchas gracias y hasta la próxima, ¡73s de Juanchi EA1FSC!