Visor y editor open source de PDF y Markdown, pensado para leer en modo oscuro.
Creado por R3ZON con ❤️
BPDF es una aplicación web para abrir, leer y editar archivos PDF y Markdown directamente en el navegador.
🌐 Úsalo sin instalar nada: bpdf.r3zon.com
📚 Documentación: docs.r3zon.com/bpdf
🔒 Tus documentos no salen de tu dispositivo. BPDF no tiene backend, cuentas, base de datos, telemetría ni subida de archivos.
BPDF utiliza un visor propio construido sobre pdf.js.
- 🌙 Modo oscuro selectivo: oscurece el fondo y aclara el texto sin invertir las fotografías.
- 🔎 Búsqueda de texto.
- 🖼️ Miniaturas de páginas.
- 🔍 Zoom.
- 🔄 Giro de página.
- 📖 Vista continua o página a página.
- 🖥️ Pantalla completa.
- ⌨️ Atajos de teclado.
- 🔐 Apertura de PDF protegidos mediante contraseña.
- 📝 Formularios visibles, aunque no editables en v1.
- 🎨 Conservación de fotografías, imágenes y gráficos en sus colores originales.
La contraseña de un PDF se utiliza únicamente para abrir el documento y BPDF no la guarda.
Lector Markdown compatible con GFM:
- tablas;
- listas de tareas;
- notas al pie;
- índice automático;
- bloques de código con resaltado;
- enlaces;
- imágenes locales;
- fórmulas KaTeX;
- diagramas Mermaid.
El HTML incluido en un Markdown no se interpreta como HTML ejecutable.
Las imágenes de un Markdown se pueden mostrar si:
- seleccionas el
.mdjunto con sus imágenes; - abres la carpeta que contiene el documento;
- o arrastras los recursos correspondientes.
BPDF solo puede acceder a los archivos que hayas seleccionado explícitamente.
Las imágenes remotas no se descargan automáticamente.
BPDF incluye un editor basado en CodeMirror 6.
- edición de Markdown;
- historial deshacer/rehacer;
- modo Lectura;
- modo Edición;
- modo Dividido;
- vista previa sincronizada;
- KaTeX y Mermaid en la vista previa;
- guardado local;
- Crear Markdown: un documento nuevo, vacío, que se abre en modo Dividido;
- Guardar como…: el Markdown en otro destino (
.md) o exportado a PDF.
En Chrome y Edge puede utilizar el diálogo nativo para guardar archivos. En Firefox y Safari utiliza una descarga local como alternativa.
Cualquier Markdown (abierto, nuevo o editado, en cualquier modo) se puede guardar como PDF con Guardar como… → PDF, en tema claro u oscuro.
- se usa la impresión del navegador («Guardar como PDF»): sin librerías de PDF ni servidores;
- el texto sigue siendo seleccionable y las fórmulas y los diagramas, vectoriales;
- el PDF lleva solo el documento: sin cabeceras, pies ni marca de BPDF;
- el tamaño de papel se elige en el diálogo del navegador;
- la elección de colores no se guarda.
BPDF puede recordar en tu navegador:
- zoom predeterminado de PDF;
- modo de visualización;
- miniaturas;
- atajos de una tecla;
- tamaño de letra de Markdown;
- ancho del contenido;
- página y zoom por los que ibas en cada PDF.
Puedes borrar las posiciones guardadas o restablecer todas las preferencias desde la propia aplicación.
BPDF está diseñado como una aplicación local-first.
Tus documentos se procesan en tu navegador.
BPDF no tiene:
- ❌ backend;
- ❌ base de datos;
- ❌ cuentas de usuario;
- ❌ sincronización en la nube;
- ❌ telemetría;
- ❌ analytics;
- ❌ subida de documentos.
Un documento tampoco puede hacer que BPDF cargue automáticamente imágenes, fuentes, scripts u otros recursos desde Internet.
La aplicación utiliza una Content Security Policy estricta para reforzar estas restricciones.
BPDF únicamente utiliza dos entradas de almacenamiento local:
| Clave | Contenido |
|---|---|
bpdf:prefs |
Preferencias de la aplicación |
bpdf:positions |
Posición y zoom de documentos PDF mediante una huella |
No se almacena:
- el nombre del archivo;
- el contenido del documento;
- contraseñas;
- búsquedas;
- estado del editor.
Más información:
BPDF requiere JavaScript y está pensado para versiones modernas de:
| Navegador | Versión mínima |
|---|---|
| Chrome / Edge | 111+ |
| Firefox | 128+ |
| Safari | 16.4+ |
Las pruebas automatizadas se ejecutan en:
- Chromium;
- Firefox;
- WebKit.
BPDF funciona tanto en ordenador como en dispositivos móviles, con una interfaz adaptable.
BPDF prioriza simplicidad, privacidad y una superficie de ataque pequeña.
Actualmente:
- solo se abre un documento a la vez;
- no incluye OCR;
- los formularios PDF se muestran pero no se rellenan;
- solo existe tema oscuro;
- documentos Markdown muy grandes pueden tardar varios segundos en procesarse;
- documentos muy grandes con muchas fórmulas pueden reducir el rendimiento del modo Dividido;
- no existe sincronización entre dispositivos.
Consulta la lista completa en Límites conocidos.
- Node.js 24
- npm
- Git
La versión de Node está fijada en .nvmrc.
Con nvm:
nvm useEn Windows recomendamos trabajar dentro de WSL.
git clone https://github.com/alexhiguera/BPDF.git
cd BPDF
npm cinpm run devLa aplicación estará disponible en:
http://localhost:5173
El servidor de desarrollo no reproduce todas las cabeceras de seguridad de producción. Consulta
docs/DEVELOPMENT.md.
npm run buildLa aplicación estática se genera en:
dist/
Puedes servirla localmente con las cabeceras equivalentes a producción:
npm run previewBPDF no necesita servidor de aplicación ni variables de entorno.
La web oficial se distribuye mediante Vercel, pero dist/ puede alojarse en cualquier hosting de archivos estáticos que permita configurar las cabeceras necesarias.
La configuración de seguridad tiene como fuente:
src/config/security-headers.ts
npm run lint
npm run typecheck
npm run test:run
npm run buildChromium:
npm run test:e2eFirefox y WebKit:
npm run test:e2e:compatLa primera vez instala los navegadores de Playwright:
npx playwright install --with-depsnpm run build
npm run build:tamano
npm run build:verificarnpm run docs:validar
npm run docs:enlacesnpm run lint &&
npm run typecheck &&
npm run test:run &&
npm run build &&
npm run build:tamano &&
npm run build:verificar &&
npm run docs:validar &&
npm run docs:enlacesBPDF intenta mantener una arquitectura deliberadamente pequeña:
Archivo local
│
▼
Validación
│
├── PDF ──────► pdf.js ──────► visor + modo oscuro
│
└── Markdown ─► parser ───────► lectura / editor / preview
│
├── KaTeX
└── Mermaid aislado
No hay una API o backend entre el documento y el navegador.
Documentación técnica:
La documentación pública tiene como fuente:
Se publica en:
y en la GitHub Wiki. Las dos salen de la misma fuente; la Wiki no se edita a mano:
npm run wiki:generar -- ../BPDF.wikiLas contribuciones son bienvenidas.
Antes de abrir una PR:
- lee
CONTRIBUTING.md; - revisa el
CODE_OF_CONDUCT.md; - añade tests cuando el cambio los necesite;
- ejecuta las comprobaciones relevantes.
Para errores utiliza los Issues de GitHub.
Para vulnerabilidades de seguridad, no abras un issue público. Consulta SECURITY.md.
Si encuentras una vulnerabilidad, utiliza el sistema privado de reporte de vulnerabilidades de GitHub.
Consulta:
La versión 1.0.0 establece la primera versión pública estable de BPDF.
Las posibles mejoras futuras se mantienen separadas del alcance de v1. Entre ellas pueden evaluarse:
- mejoras de compatibilidad;
- nuevas versiones de Mermaid;
- mejoras de búsqueda del editor;
- nuevas opciones visuales;
- optimizaciones para documentos excepcionalmente grandes.
BPDF se distribuye bajo la licencia Apache License 2.0.
Copyright © 2026 R3ZON CONSULTING SL
Las dependencias y recursos incluidos en la aplicación —como pdf.js, KaTeX, Mermaid y sus fuentes— conservan sus respectivas licencias.
BPDF
Gratis · Open source · Local-first
Creado por R3ZON con ❤️