English

Read this article in English.

HTML a PDF en n8n: facturas e informes con un solo nodo (plantilla gratis)

Actualizado el

Respuesta corta: n8n no trae un nodo de "HTML a PDF". Añade un nodo HTTP Request que envíe tu HTML (POST) a https://api.cofferdock.com/pdf con la cabecera x-api-key, pon Response Format en File y el nodo devuelve el PDF en la propiedad binaria data. Cada PDF gasta 1 crédito, tenga las páginas que tenga.

Si automatizas con n8n, tarde o temprano necesitas un PDF dentro de un flujo: una factura por cada pedido, un informe semanal, un presupuesto, una entrada o un certificado. No hace falta montar Puppeteer, Gotenberg ni un servidor propio. Un nodo HTTP Request llamando a la API de Cofferdock convierte tu HTML en PDF, y la salida del nodo ya es el archivo.

Una aclaración por delante, porque la gente la busca: n8n no trae un nodo de "HTML a PDF". La forma habitual es justo esta: un HTTP Request a una API que pinta el HTML.

Esta es la primera página del PDF real que devuelve en n8n el flujo de abajo:

Factura en PDF generada en n8n con el flujo de HTML a PDF

Lo más rápido: importa el flujo de factura

  1. En n8n, crea un flujo nuevo y abre el menú ⋯ (arriba a la derecha) → Import from URL.
  2. Pega este enlace: https://cofferdock.com/static/blog/n8n/html-to-pdf.json
  3. Abre el nodo HTML to PDF y cambia YOUR_API_KEY por tu llave.
  4. Pulsa Test workflow. El último nodo devuelve la factura como archivo PDF.

También puedes descargar el archivo del flujo y usar Import from File, o copiar su contenido y pegarlo en el lienzo con Ctrl+V. Después cambia el nodo Invoice data por tu disparador real: el webhook de tu tienda, un formulario o una fila nueva de Google Sheets.

Lo que necesitas

Paso a paso en el nodo HTTP Request

La salida es el PDF en la propiedad binaria data. En Gmail, añade un adjunto y escribe data; en Google Drive → Upload, el campo del archivo también es data.

Rellena el PDF con datos de tu flujo

Pon el campo Body en modo Expression y mete valores de los nodos anteriores:

<h1>Factura {{ $json.numero }}</h1>
<p>Cliente: <strong>{{ $json.cliente }}</strong></p>
<p>Fecha: {{ $now.toFormat('dd/LL/yyyy') }}</p>
<table style="width:100%">
  <tr><td>{{ $json.concepto }}</td><td style="text-align:right">{{ $json.total }}</td></tr>
</table>

Si el disparador trae varios pedidos, n8n ejecuta el nodo una vez por pedido y obtienes un PDF por cada uno. Un flujo típico es Webhook (pedido nuevo) → HTTP Request (PDF) → Gmail (se lo envía al cliente) → Google Drive (archivo).

Sin escribir HTML: la plantilla de factura

¿Prefieres no diseñar la factura? Manda la plantilla invoice con tus datos en JSON:

{
  "template": "invoice",
  "lang": "es",
  "data": {
    "brand": "Tu Empresa", "title": "Factura", "number": "F-1042", "date": "15/09/2026", "client": "Acme S.L.",
    "item1": "Mantenimiento web", "price1": "450,00 €",
    "subtotal": "450,00 €", "tax": "94,50 €", "total": "544,50 €"
  },
  "output": "pdf"
}

Todos los campos están en cofferdock.com/templates.json y puedes ver el diseño en la página de plantillas. Los textos se escapan, así que los datos del cliente no pueden romper la maquetación.

Opciones que puedes ajustar

OpciónPor defectoPara qué sirve
formatA4Tamaño de página: A4, A3, A5, Letter, Legal o Tabloid.
landscapefalsetrue para orientación horizontal.
margin0Margen en milímetros en los cuatro lados (de 0 a 100).
scale1Escala del contenido, de 0.1 a 2.
print_backgroundtrueImprime colores e imágenes de fondo. false para un PDF más sobrio.
outputpdfpdf devuelve el archivo; url devuelve un enlace de descarga temporal (15 minutos).

Los logos, imágenes y tipografías web funcionan con su enlace https://… dentro del HTML o del CSS. El documento se pinta sin ejecutar JavaScript, así que los gráficos dibujados con JS no salen: usa imágenes o la herramienta de gráficos.

Saltos de página, cabeceras y tablas largas

Errores típicos y cómo arreglarlos

Lo que vesPor qué pasaSolución
401 Missing x-api-key header / Invalid API keyFalta la cabecera, está mal escrita o la llave se anuló.Nombre exacto x-api-key.
Un PDF vacío o muy cortoLa expresión del Body no devolvió nada, o Body Content Type no es Raw.Mira en la vista previa del Body de n8n que sale tu HTML.
El nodo devuelve texto en vez de un archivoResponse Format sigue en Autodetect/JSON.Options → Response → Response Format → File.
Faltan colores o fondosprint_background está en false.Quítalo o ponlo en true.
429 Too many requests o Monthly limit reachedLímite por minuto de tu plan, o no quedan créditos este mes.Pon un nodo Wait en bucles grandes, o mejora el plan / compra créditos extra.

¿Prefieres verlo en código?

curl -X POST "https://api.cofferdock.com/pdf?format=A4&margin=15" \
  -H "x-api-key: TU_LLAVE" \
  -H "Content-Type: text/html" \
  --data-binary "<h1 style='color:#8a5210'>Factura #1234</h1>" \
  -o factura.pdf

¿Cuánto cuesta?

Cada PDF gasta 1 crédito, tenga las páginas que tenga. Todas las herramientas de Cofferdock tiran del mismo bote: unir, poner marca de agua, proteger con contraseña o numerar el PDF después entra en la misma suscripción.

Preguntas frecuentes

¿n8n tiene un nodo nativo de HTML a PDF? No. Se hace con el nodo HTTP Request llamando a la API de Cofferdock, que es la que genera el PDF.

¿Necesito saber programar? No. Importa el flujo, cambia los textos y conecta tu disparador. O usa la plantilla de factura y olvídate del HTML.

¿Puedo proteger el PDF con contraseña o unirlo con otros? Sí, con otro HTTP Request a las herramientas de proteger PDF o unir PDFs, en el mismo flujo.

¿Puedo generar PDFs en bucle? Sí. n8n ejecuta el HTTP Request una vez por cada elemento que llega y obtienes un PDF por elemento.

Guías relacionadas

Referencia completa con todas las opciones: API de HTML a PDF. ¿Aún sin cuenta? Crea una gratis y envía tu primera factura hoy mismo.