663 - Domina los PDF con dos servicios Docker que no te puedes perder

663 - Domina los PDF con dos servicios Docker que no te puedes perder

Dos servicios #docker para #linux con los que gestionar, modificar, leer y comentar documentos #pdf de forma sencilla, rápida y práctica

1:25
-3:15

Uno de los mejores inventos tecnológicos que existen, y que probablemente no se les da la importancia que realmente son los PDF. Realmente son una solución impresionante a la hora de transmitir documentación. Si bien se trata de un formato desarrollado inicialmente por Adobe Systems, el 1 de julio de 2008 se convirtió en un estándar abierto. La cuestión es que a pesar de tratarse un estándar, no se prodigan herramientas que te permitan modificar PDFs. Si que existen gran cantidad de lectores, pero lo que son herramientas no son tantas. Aunque si buscas seguro que encuentras servicios en Internet que te permita trabajar con ellos. Pero haberlos los hay. En este sentido, en este episodio te traigo dos servicios que puedes alojar en tu propio servidor para editar PDF. Básicamente te doy la opción de tener a tu alcance el Paraíso de la edición de PDFS.

Domina los PDF con dos servicios en Docker que no te puedes perder

Una reflexión

Cuando te traigo servicios como los que te muestro en este episodio siempre me queda la espinita clavada de si el servicio debe ser privado, es decir, solo para nosotros, o abrirlo a todo Internet. Sin embargo, dada la fauna que hay ahí fuera, siempre me decanto por la primera opción. Pero es algo que me gustaría que me dieras tu opinión. ¿Qué prefieres? ¿Un servicio privado o uno público?

Desde luego que los servicios que hoy te traigo son servicios que deberían estar disponibles a mas de una persona. Por ejemplo, que estuvieran disponibles a un equipo de trabajo, o a tu familia. En fin, se trata de una posibilidad.

Sobre los PDF

Soy consciente que es muy difícil que no conozcas que es un PDF. Pero por si acaso, te diré que es un formato de archivo que se utiliza para presentar e intercambiar documentos de forma fiable, independientemente del software, hardware o sistema operativo. Fue creado por Adobe Systems en 1993 y se convirtió en un estándar abierto en 2008. La especificación del formato PDF está controlada por la International Organization for Standardization (ISO) y la International Electrotechnical Commission (IEC).

Lo cierto, es que en estos últimos tiempos yo cada vez utilizo menos PDF de forma profesional, y mas de forma personal.

La navaja suiza de los PDF, Stirling PDF

Stirling-PDF es una herramienta robusta para la manipulación de archivos PDF basada en la web y alojada localmente mediante Docker. Permite realizar diversas operaciones en archivos PDF, como dividir, fusionar, convertir, reorganizar, agregar imágenes, rotar, comprimir y mucho más. Esta aplicación web alojada localmente ha evolucionado hasta incluir un conjunto completo de funciones, abordando todas tus necesidades relacionadas con PDF.

Todos los archivos y documentos PDF existen exclusivamente en el lado del cliente, residen en la memoria del servidor solo durante la ejecución de la tarea o permanecen temporalmente en un archivo únicamente para la realización de la tarea. Cualquier archivo descargado por el usuario habrá sido eliminado del servidor en ese momento.

Algunas de las características de Stirling PDF son,

  • Funcionalidad Extensa para PDF: Acceso a más de 50 herramientas, incluyendo firma, conversión, fusión y más.
  • Personalización Avanzada: Personalización profunda, temas y variables de entorno.
  • Funciones Empresariales: SSO, gestión de usuarios y controles de permisos.
  • Seguridad de Datos: Procesamiento de archivos local con eliminación automática después de cada tarea.
  • Escalabilidad y Automatización: Procesamiento por lotes con soporte para Docker y Kubernetes.
  • Integración de API: Uso de APIs para automatización e integraciones externas.
  • Código Abierto: Desarrollado por la comunidad con actualizaciones frecuentes y soporte en GitHub.
  • Soporte Multilingüe: Disponible en más de 38 idiomas con traducciones activas.

Uso y funcionamiento

Stirling-PDF está divido en seis secciones que paso a describirte a continuación,

  • Organizar. En esta primera sección te permite dividir, fusionar, convertir, reorganizar, agregar imágenes, rotar, comprimir y mucho más.
  • Convertir a PDF. En segunda sección puedes convertir archivos de texto, imágenes, documentos de oficina y más a PDF.
  • Convertir desde PDF. Aquí encontrarás herramientas para convertir desde PDF a otros formatos como CSV, HTML, imagen, Word, XML.
  • Señalización y seguridad. En esta cuarta sección encontrarás todo lo relativo a la seguridad de los PDFs, como firmar, cifrar, desbloquear, proteger con contraseña, etc. Así puedes añadir contraseña, firmar con certificado, cambiar permisos, eliminar contraseña, eliminar scripts y otros elementos, o por supuesto, validar firmas y certificados de documentos.
  • Ver y Editar. Aquí encontrarás distintas herramientas para modificar los PDFs, empezando por agregar imágenes, añadir el número de imágenes, modificar los metadatos, pasando por ejecutar OCR o incluso eliminar imagenes.
  • Avanzado. Y por fin, en esta última sección encontrarás distintas operaciones como renombrar archivos, auto dividir páginas, superponer pdfs, reparar pdfs corruptos o auto dividir pdfs por tamaño.

Como ves se trata de una auténtica navaja suiza con una gran cantidad de operaciones que te van a permitir hacer casi cualquier cosa con PDFs.

Instalación

Se trata de un servicio web, como te mencionaba en la introducción, con lo que para mi lo interesante es montarlo en una red interna para que esté accesible a cualquier persona de tu familia o equipo. La instalación es realmente sencilla. Te indico a continuación el docker-compose.yml para facilitarte la instalación,

services:
  stirlingpdf:
    container_name: stirlingpdf
    image: stirlingtools/stirling-pdf:latest
    restart: unless-stopped
    init: true
    environment:
      DOCKER_ENABLE_SECURITY: false
      LANGS: es_ES
    volumes:
      - trainingData:/usr/share/tessdata # Required for extra OCR languages
      - extraConfigs:/configs
      - customFiles:/customFiles/
      - logs:/logs/
      - pipeline:/pipeline/
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.services.stirlingpdf.loadbalancer.server.port=8080
      - traefik.http.routers.stirlingpdf.entrypoints=https
      - traefik.http.routers.stirlingpdf.rule=Host(`stirlingpdf.tuservidor.es`)


volumes:
  trainingData: {}
  extraConfigs: {}
  customFiles: {}
  logs: {}
  pipeline: {}

networks:
  proxy:
    external: true

Una observación

La verdad es que este servicio me ha gustado mucho, y además dispone de una API que te permite hacer todas estas operaciones vía scripting, lo que es realmente muy potente. Sin embargo, tiene un gran pero para mi. Se trata de un servicio que está implementado en Java, y que consumo una gran cantidad de recursos, tanto de memoria RAM como de uso de disco.

Por otro lado, esta herramienta no tiene control de acceso. Me refiero a que cualquiera que tenga acceso a la página podrá utilizarla. En este sentido, si la expones a Internet, ya sabes lo que hay.

PdfDing. Más allá de un simple visor de PDF

El segundo de los servicios que te traigo para trabajar con PDF es PdfDing. Sin embargo te tengo que decir que la mayoría de las opciones que puedes hacer con PdfDing también las puedes hacer con el servicio anterior sobre el que te acabo de hablar. ¿Entonces?. Pues para mi la gracia de este servicio es mas un visor de pdf con habilidades que un editor de PDF.

Me refiero a que se trata de un visor con habilidades en el sentido que te permite, no solo, leer tus PDFs si no que además te permite llevar un seguimiento del punto de lectura donde te quedaste, así como subrayar, marcar y anotar el PDF.

Tal y como define el propio desarrollador de esta herramienta,

PdfDing es un gestor, visualizador y editor de PDF que ofrece una experiencia de usuario fluida en múltiples dispositivos.

Características de PdfDing

Algunas de las características de PdfDing son las siguientes,

  • Visualización fluida de archivos PDF basada en el navegador en múltiples dispositivos.
  • Recuerda la posición actual: continúa donde dejaste la lectura.
  • Organiza PDFs con etiquetas de varios niveles.
  • Edita PDFs añadiendo anotaciones, resaltados y dibujos.
  • Modo oscuro, temas de colores y colores de temas personalizados.
  • Modo de color invertido para leer PDFs.
  • Soporte de SSO mediante OIDC.
  • Comparte PDFs con una audiencia externa a través de un enlace o un código QR.
  • Los PDFs compartidos pueden protegerse con contraseña, controlar el acceso mediante un número máximo de vistas y establecer una fecha de expiración.
  • Notas en Markdown.
  • Barras de progreso que muestran el avance de lectura de cada PDF de un vistazo rápido.
  • Cada usuario puede subir sus propios PDFs. No hay un administrador que gestione el contenido.
  • Copias de seguridad automatizadas y encriptadas en un almacenamiento compatible con S3.

– También puedes añadir PDFs de forma masiva, en lugar de uno a uno.

Instalación

Al igual que en el caso anterior, te dejo a continuación el docker-compose.yml para que puedes poner en marcha este servicio de forma sencilla,

services:
  pdfding:
    container_name: pdfding
    image: mrmn/pdfding:latest
    restart: unless-stopped
    init: true
    environment:
      DEFAULT_THEME: dark
      DEFAULT_THEME_COLOR: blue
      SECRET_KEY: some_secret
      HOST_NAME: pdfding.tuservidor.es
      CSRF_COOKIE_SECURE: 'TRUE'
      SESSION_COOKIE_SECURE: 'TRUE'
    volumes:
      - sqlite_data:/home/nonroot/pdfding/db
      - media:/home/nonroot/pdfding/media
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.services.pdfding.loadbalancer.server.port=8000
      - traefik.http.routers.pdfding.entrypoints=https
      - traefik.http.routers.pdfding.rule=Host(`pdfding.tuservidor.es`)

volumes:
  sqlite_data:
  media:

networks:
  proxy:
    external: true

En este caso, y dado que lo voy a utilizar yo solo, lo he levantado con SQLite, pero en el caso de que lo vayas a utilizar entre varios, mi recomendación sería que utilizaras Postgresql como motor de base de datos.

Un comentario

En este caso, este servicio está pensado mas para el uso individual que para uso colectivo. Me refiero a que permite mantener colecciones individualizadas de PDF, con su correspondiente seguimiento de posición de lectura, etc. Y para ello, lleva la correspondiente gestión de usuarios.


Más información,

2 comentarios en “Domina los PDF con dos servicios Docker que no te puedes perder

  1. SE
    Sergi hace 3 horas

    Hola Lorenzo, capítulo super interesante como siempre !
    Lástima que no he podido acabar de escucharlo porque el audio se entrecorta y aunque se puede escuchar, los cortes son bastante molestos…

    Un saludo !

  2. RA
    Ramón Riera hace 57 minutos

    Hola Lorenzo.
    Hace ya tiempo que te sigo y debo decirte que haces un trabajo fantástico.

    Saludos y gracias,

    Ramon

Deja una respuesta

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