Sin subida, 100% local, sin cuenta

HTML a PDF

Pega HTML, elige un tamaño de página y descarga un PDF; todo se renderiza en tu navegador.

Cómo funciona HTML a PDF

HTML a PDF toma el marcado HTML que pegas en el editor, lo desinfecta con DOMPurify para eliminar scripts y atributos no seguros, lo renderiza en un canvas fuera de pantalla usando html2canvas y codifica el resultado en un PDF con jsPDF. Todo el flujo se ejecuta dentro de tu pestaña del navegador; ningún código HTML ni resultado renderizado se transmite a ningún servidor. Esto lo hace adecuado para convertir fragmentos HTML que contengan datos personales que no querrías pegar en un servicio en línea.

Conviene entender el formato de salida antes de confiar en él. Las páginas del PDF son imágenes rasterizadas, no texto vectorial. El texto del resultado no es seleccionable, no es buscable y no puede refluir. Los recursos externos como imágenes referenciadas por URL están bloqueados por la política CORS del navegador y no se cargarán. Los estilos en línea y el CSS incrustado funcionan, pero los diseños complejos con fuentes web personalizadas o CSS grid avanzado pueden no renderizarse con precisión. Para una conversión fiel al documento de páginas web completas, un navegador sin cabeza ejecutándose en el servidor es la herramienta más adecuada.

Cómo usar HTML a PDF, paso a paso

  1. Pega tu marcado HTML en el área del editor.
  2. Ajusta opcionalmente el tamaño de página (A4 o Letter) y la orientación.
  3. Haz clic en convertir; DOMPurify desinfecta el HTML y html2canvas lo renderiza.
  4. Espera a que jsPDF codifique el resultado del canvas como páginas PDF.
  5. Descarga el PDF.

Casos de uso comunes

  • Generaste una factura HTML en tu navegador a partir de una plantilla local y quieres una copia en PDF sin enviarla a un servicio de conversión.
  • Un informe HTML sencillo construido a partir de datos de una API necesita guardarse como PDF para archivarlo; pega el HTML y conviértelo localmente.
  • Escribiste una plantilla de correo electrónico HTML con estilo y quieres previsualizar cómo quedaría impresa como PDF.
  • Un desarrollador necesita un PDF rápido de un fragmento HTML durante las pruebas, sin configurar un navegador sin cabeza en el servidor.

Preguntas frecuentes

¿Por qué el texto del PDF resultante no es seleccionable?

El flujo de conversión renderiza el HTML en un mapa de bits en canvas usando html2canvas y luego codifica ese mapa de bits como datos de imagen dentro de las páginas del PDF con jsPDF. El resultado es una imagen rasterizada, no una capa de texto. Si necesitas un PDF con texto seleccionable, necesitarás un navegador sin cabeza en el servidor como Puppeteer, que esta herramienta evita intencionalmente para mantener el procesamiento local.

¿Por qué las imágenes de mi HTML no aparecen en el PDF?

Las imágenes cargadas desde URLs externas están sujetas a la política CORS del navegador. Si el servidor de imágenes no envía cabeceras CORS permisivas, html2canvas no puede leer los datos de píxel y el espacio de la imagen se renderiza en blanco. Las imágenes en base64 en línea incrustadas directamente en el HTML o imágenes del mismo origen funcionan sin esta restricción.

¿El HTML que pego se envía a un servidor?

No. El HTML permanece en la memoria del navegador durante todo el proceso. DOMPurify lo desinfecta del lado del cliente, html2canvas lo renderiza del lado del cliente y jsPDF codifica el PDF del lado del cliente. Nada abandona la pestaña del navegador.

¿Qué elimina la desinfección de DOMPurify?

DOMPurify elimina etiquetas de script, atributos de controladores de eventos como onclick y onload, URLs javascript: y otras construcciones que podrían ejecutar código. Conserva el marcado estructural y de estilo, por lo que el resultado renderizado tiene el mismo aspecto pero es seguro para insertarlo en un contexto de documento.

¿Puedo convertir una URL de página web completa en lugar de pegar HTML?

No. La herramienta trabaja con marcado HTML que pegas directamente. Cargar una URL requeriría obtener la página, lo que topa con restricciones CORS para la mayoría de los sitios e implicaría una petición de red que saca la operación del modelo de procesamiento local.