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) ahttps://api.cofferdock.com/pdfcon la cabecerax-api-key, pon Response Format en File y el nodo devuelve el PDF en la propiedad binariadata. 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:

Lo más rápido: importa el flujo de factura
- En n8n, crea un flujo nuevo y abre el menú ⋯ (arriba a la derecha) → Import from URL.
- Pega este enlace:
https://cofferdock.com/static/blog/n8n/html-to-pdf.json - Abre el nodo HTML to PDF y cambia
YOUR_API_KEYpor tu llave. - 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
- Una cuenta en Cofferdock. El plan gratis te da 50 créditos al mes sin tarjeta, de sobra para probar.
- Tu API key, que creas en tu panel con "+ Crear llave". Se muestra una sola vez, así que cópiala y guárdala.
- Un nodo HTTP Request en tu flujo de n8n.
Paso a paso en el nodo HTTP Request
- Method:
POST - URL:
https://api.cofferdock.com/pdf - Send Query Parameters: actívalo y añade el tamaño de página:
format=A4(ymargin=15si quieres márgenes de 15 mm). - Send Headers: actívalo y añade dos cabeceras:
x-api-keycon tu llave, yContent-Typecon el valortext/html. - Send Body: actívalo → Body Content Type
Raw→ Content Typetext/html→ en Body pega tu HTML. - En Options → Response → Response Format elige File.
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:
- Body Content Type:
JSON→ Specify Body:Using JSON - Quita la cabecera
Content-Type: text/html. - 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ón | Por defecto | Para qué sirve |
|---|---|---|
format | A4 | Tamaño de página: A4, A3, A5, Letter, Legal o Tabloid. |
landscape | false | true para orientación horizontal. |
margin | 0 | Margen en milímetros en los cuatro lados (de 0 a 100). |
scale | 1 | Escala del contenido, de 0.1 a 2. |
print_background | true | Imprime colores e imágenes de fondo. false para un PDF más sobrio. |
output | pdf | pdf 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
- Fuerza una página nueva antes de un elemento con
style="break-before: page". - Evita que un bloque se parta entre páginas con
style="break-inside: avoid"(útil en filas de tabla y totales). - Repite la cabecera de una tabla en cada página poniéndola dentro de
<thead>.
Errores típicos y cómo arreglarlos
| Lo que ves | Por qué pasa | Solución |
|---|---|---|
401 Missing x-api-key header / Invalid API key | Falta la cabecera, está mal escrita o la llave se anuló. | Nombre exacto x-api-key. |
| Un PDF vacío o muy corto | La 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 archivo | Response Format sigue en Autodetect/JSON. | Options → Response → Response Format → File. |
| Faltan colores o fondos | print_background está en false. | Quítalo o ponlo en true. |
429 Too many requests o Monthly limit reached | Lí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
- HTML a PDF en Make y en Zapier
- HTML a imagen en n8n
- URL a PDF en n8n: guarda una página web entera como PDF
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.