📄 PDF Tool
Una app de escritorio sencilla para trabajar con tus PDFs — sin subir nada a internet.
Comprime, une, divide, protege y marca tus documentos —y conviértelos desde imágenes— desde tu propio ordenador. Gratis, de código abierto y sin anuncios.
✨ Qué puedes hacer
| Herramienta | Para qué sirve | |
|---|---|---|
| 🗜️ | Comprimir PDF | Reduce el peso de uno o varios PDFs hasta el tamaño en MB que elijas. |
| 🔗 | Unir PDFs | Combina varios documentos en uno solo, en el orden que quieras y con el nombre que elijas. |
| ✂️ | Dividir PDF | Separa un PDF en varios: por rangos de páginas, una página por archivo o cada N páginas. |
| 🖼️ | Imágenes a PDF | Convierte cada imagen (JPG/PNG) en su propio PDF — y si quieres uno solo, únelos después. |
| 🔒 | Proteger PDF | Añade o quita la contraseña de uno o varios PDFs a la vez. |
| 💧 | Marca de agua | Repite un texto en diagonal sobre todas las páginas. |
🔐 Todo ocurre en tu equipo. Tus archivos nunca salen de tu ordenador.
En Comprimir PDF, el modo predeterminado busca la reducción máxima. También puedes elegir Conservar texto y enlaces desde el selector de modo; el icono de ayuda explica la diferencia.
⬇️ Descargar e instalar
Ve a la página de descargas y elige el archivo de tu sistema:
🍎 macOS
- Descarga el archivo
.dmgy ábrelo. - Arrastra PDF Tool a la carpeta Aplicaciones.
- Ábrela desde Aplicaciones. macOS mostrará un aviso y no dejará abrirla aún (es normal: la app no está firmada, pero es segura).
- Ve a Menú Apple () → Ajustes del Sistema → Privacidad y Seguridad.
- Baja hasta la sección Seguridad: verás un mensaje que dice que se bloqueó “PDF Tool”.
Pulsa Abrir de todas formas y confirma con tu contraseña o Touch ID.
Solo hay que hacerlo la primera vez. A partir de ahí se abre con doble clic como cualquier app.
🪟 Windows
- Descarga el instalador (
.exe) y ejecútalo. - Si aparece SmartScreen: Más información → Ejecutar de todas formas.
(El aviso sale porque el instalador no está firmado; es seguro.)
✅ Tus ajustes se guardan fuera de la app, así que se conservan al actualizar. Cuando publique una nueva versión, la app te avisa con un banner.
🤖 Para agentes de IA y la línea de comandos
Las mismas herramientas están disponibles como comando, pensado para agentes (Claude Code, Cursor, Copilot…) y scripts. Todo sigue ocurriendo en tu equipo.
pipx install pdf-tool-cli # solo la CLI (sin la app de escritorio)
pdf-tool list --json # qué herramientas hay y qué aceptan
pdf-tool compress informe.pdf --json # comprimir y obtener el resultado en JSON
pdf-tool merge a.pdf b.pdf --output-name todo
echo "$CLAVE" | pdf-tool protect a.pdf --password-stdin
Cada herramienta tiene su ayuda (pdf-tool compress --help). Códigos de salida:
0 ok · 1 error al procesar · 2 uso inválido · 3 algún archivo del lote falló.
pipx install 'pdf-tool-cli[gui]' instala además la app (comando pdftool).
🤝 Contribuir
¡Las contribuciones son bienvenidas! Puedes abrir un issue con ideas o errores, o mandar un pull request. La arquitectura es modular: añadir una herramienta nueva es crear una carpeta y la app la descubre sola. En el roadmap está lo que viene: una CLI para agentes de IA, a la par con la app.
🛠️ Para desarrolladores (montar el proyecto en local)
Requisitos
- Python 3.11+ y Poetry
Arrancar
poetry install --all-extras # incluye Flet (extra [gui]) para la app
poetry run pdftool # abre la app
poetry run pytest # corre los tests
Añadir una herramienta nueva
- Crea
pdftool/tools/<id>/conparams.py,logic.py(función pura + tests),spec.py(registra la herramienta, sin Flet),panel.pyy un__init__.pyvacío. - La app la muestra en la barra lateral y la CLI la ofrece como
pdf-tool <id>, las dos automáticamente.
La lógica (logic.py) no importa Flet y se prueba sin UI; la UI (panel.py)
solo arma controles. Detalles en AGENTS.md.
Publicar una versión (automatizado con GitHub Actions)
git tag v0.2.0
git push origin v0.2.0
Eso dispara release.yml, que corre los tests, construye macOS (.dmg) y Windows
(instalador Inno Setup) en paralelo, hornea la versión del tag en el build y crea
un GitHub Release en borrador con ambos instaladores. Revísalo y pulsa
Publish release para que las apps instaladas detecten la actualización.
Si los instaladores se construyen bien, publica también el paquete en PyPI
(Trusted Publishing, entorno pypi de GitHub; sin tokens).
Los PRs que cambian la app, el empaquetado o sus dependencias ejecutan además Package smoke: construye e inspecciona el DMG de macOS y compila e instala de forma silenciosa el instalador de Windows. Antes de una release importante, seguir la checklist manual para validar la ventana y los diálogos nativos.
El número de versión es el tag — única fuente de verdad.
Build local (para depurar el empaquetado)
poetry run flet build macos # -> build/macos/pdf-tool.app
poetry run flet build windows # -> build/windows/
Metadata
Release files for pdf-tool-cli 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pdf_tool_cli-1.1.0.tar.gz | 57.1 kB | With provenance | Details for pdf_tool_cli-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pdf_tool_cli-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for pdf_tool_cli-1.1.0-py3-none-any.whl |
Total release size: 134.6 kB
Release files / pdf_tool_cli-1.1.0.tar.gz
| Download URL | pdf_tool_cli-1.1.0.tar.gz |
|---|---|
| Size | 57.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a86c09d2954f55cf4847133c72aef10fd79f03d668eb7901535ed8b05ccf8e8f
|
|
BLAKE2b-256 checksum How to use checksums |
3b6dd17bfc6a4ef25dd408c3050269c01209d78fa9feafa669fd73b69ef3819f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logRelease files / pdf_tool_cli-1.1.0-py3-none-any.whl
| Download URL | pdf_tool_cli-1.1.0-py3-none-any.whl |
|---|---|
| Size | 77.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1c0fbb1b0b6e4981af4669329ec0049cd8c075706071436cb35b50054c9cb27
|
|
BLAKE2b-256 checksum How to use checksums |
a927b1a3df7a249e05117d568781e47548dd15ec19af1e4c628f2ba2d66b5290
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logSecurity for pdf-tool-cli 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pdf_tool_cli-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.