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
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,
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 !
Hola Lorenzo.
Hace ya tiempo que te sigo y debo decirte que haces un trabajo fantástico.
Saludos y gracias,
Ramon