Generador de Documentos
Este nodo genera un documento (PDF o HTML) combinando una plantilla diseñada en la sección Plantillas con el payload del workflow. El render no usa dependencias externas ni servicios de pago.
Función
Sección titulada «Función»Toma la plantilla (por template_id o inline), resuelve las variables {{data.campo}} con el payload y dibuja el documento. Guarda siempre una copia en disco y, opcionalmente, persiste el documento para servirlo por una URL con token.
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| template_id | Selector de plantilla | No* | Plantilla guardada en la sección Plantillas. El + crea una nueva. |
| output_format | Select | No | pdf (def.), html o both. |
| output | Select | No | url (def.): persiste y devuelve enlace. base64: embebe el documento. |
| filename | Texto | No | Nombre de archivo. Admite variables, ej. ficha_{{data.referencia}}. |
| ttl_hours | Número | No | Caducidad del enlace (solo modo URL). |
| template_json | Textarea (avanzado) | No* | Plantilla de bloques inline, si no usás una guardada. |
* Requerido template_id o template_json.
Modo URL (recomendado)
Sección titulada «Modo URL (recomendado)»{ "document": { "url": "http://tu-engine/d/doc/<token>", "token": "<token>", "path": "/ruta/local/al/archivo.pdf", "file_url": "http://tu-engine/download/cli_2/archivo.pdf", "filename": "ficha_R-100.pdf", "mimetype": "application/pdf", "bytes": 24567 }, "filename": "ficha_R-100.pdf", "path": "/ruta/local/al/archivo.pdf"}document.url— enlace/d/doc/:tokenservido por el engine (no por la app). No infla el estado del workflow.document.path— ruta local del archivo generado (para adjuntar por email, FTP, etc.).document.file_url— URL de descarga directa del archivo en disco.
Modo base64
Sección titulada «Modo base64»{ "filename": "ficha_R-100.pdf", "mimetype": "application/pdf", "pdf_base64": "JVBERi0x..." , "path": "/ruta/local/..." }Plantilla de bloques
Sección titulada «Plantilla de bloques»La plantilla es un JSON con page, theme, header, footer y un array blocks. Tipos de bloque: titleBlock, section, fieldGrid, table, text, image, qr, divider, pageBreak. Cualquier bloque admite when (condicional). Detalle completo en la guía del Generador de Documentos.
{ "page": { "size": "A4", "orientation": "portrait", "margins": 40 }, "header": { "brand": "{{data.empresa}}", "title": "FACTURA", "refLine": "Nº {{data.numero}}" }, "footer": { "left": "Generado · {{now}}", "right": "Página {page} de {pages}", "pageNumbers": true }, "blocks": [ { "type": "section", "title": "Cliente" }, { "type": "fieldGrid", "columns": 2, "fields": [ { "label": "Cliente", "value": "{{data.cliente}}" }, { "label": "NIF", "value": "{{data.nif}}" } ]}, { "type": "table", "from": "{{data.lineas}}", "zebra": true, "columns": [ { "header": "Concepto", "path": "concepto", "width": 5 }, { "header": "Importe", "path": "importe", "align": "right", "width": 1 } ]} ]}Combinaciones habituales
Sección titulada «Combinaciones habituales»| Siguiente nodo | Caso de uso |
|---|---|
| sendMail | Adjuntar el documento (por path) o enlazar url. |
| http | Devolver document.url como respuesta de una API. |
| ftp / s3 | Subir el archivo generado usando document.path. |
| dataStore | Guardar el enlace del documento para consultarlo luego. |
- El nodo corre en el worker de cola. Tras cambios en el engine, reiniciá el worker para que tome la versión nueva.
- La
document.urlapunta al engine (donde vive la ruta/d/doc), no a la app. - Imágenes: se embeben JPEG; el QR se dibuja como vector.
Nodos relacionados
Sección titulada «Nodos relacionados»- htmlTemplate — render HTML con variables (sin PDF nativo).
- barcodeGenerator — genera imágenes de código de barras/QR.
- sendMail — envía el documento por correo.