Saltar a contenido

Documentación: Nodo Generar PDF (Generate PDF)

Descripción General

El Nodo Generar PDF (Generate PDF) es un nodo de acción que construye un documento PDF a partir de un modelo de bloques (encabezado, contenido y pie de página) definido visualmente. Permite generar reportes con texto, tablas, listas, imágenes, separadores, códigos QR/barras y saltos de página, con control de tamaño de página, orientación, márgenes y fuente.

En entornos IoT e industriales es ideal para producir reportes automáticos: actas de incidentes, partes de mantenimiento, resúmenes de eventos o informes de turno, generados al vuelo con datos del flujo y entregados como archivo o adjunto.


¿Cuándo usar este nodo?

Utiliza este nodo cuando necesites:

  • Generar un reporte en PDF como parte de una automatización (incidente, mantenimiento, turno).
  • Componer documentos con estructura rica (títulos, párrafos, tablas, listas, imágenes) usando datos del flujo.
  • Producir un PDF para adjuntarlo a un correo, guardarlo en disco o reutilizar su contenido en otros nodos.

Configuración del Nodo

El formulario se organiza en cinco secciones seleccionables: Page, Header, Content, Footer y Output. Además, dispone de las pestañas Preview (vista previa) y JSON Editor.

Sección Page del nodo Generar PDF

Sección: Page (Página)

Define el formato del documento:

  • Page Size: tamaño de página (A4, A3, A5, A6, Letter, Legal, Tabloid).
  • Orientation: orientación (Portrait / Landscape).
  • Custom Margins: márgenes personalizados en mm (opcional).
  • Default Font: fuente por defecto del documento (familia, tamaño, color, negrita/cursiva) (opcional).

Editores de bloques para el encabezado, el cuerpo y el pie del documento. Con Add block... se agregan bloques de distintos tipos, que se pueden reordenar y editar:

  • Paragraph (párrafo), Heading (título H1–H6), Image (imagen por URL/base64), Table (tabla), List (lista ordenada/no ordenada), Divider (separador), Spacer (espaciador), Columns (columnas), Page Break (salto de página), QR Code y Barcode.

El texto de los bloques admite interpolación de variables ({{variable}}) para insertar datos del flujo.

Sección Content configurada del nodo Generar PDF

Sección: Output (Salida)

Define cómo se entrega el PDF:

  • Output Format: Base64 (la salida incluye pdf_base64), File (se guarda como archivo) o Both.
  • File Name / Directory Path: nombre y ruta del archivo (cuando el formato es File o Both). El nombre admite interpolación (por ejemplo, report-{{id}}.pdf).

Vista Preview (Vista previa)

La pestaña Preview muestra una representación aproximada del documento (tamaño, orientación y bloques) para validar el diseño antes de generarlo.

Vista Editor de JSON

Vista JSON Editor del nodo Generar PDF


Estructura JSON (Parámetros de entrada)

{
  "document": {
    "page_size": "A4",
    "orientation": "portrait",
    "margins": null,
    "default_font": null,
    "header": [],
    "footer": [],
    "blocks": [
      { "type": "heading", "text": "Incident Report", "level": 1, "align": "left" },
      { "type": "paragraph", "text": "An intrusion alarm was triggered at the North Gate on {{trigger.datetime}}. Sensor: {{trigger.object_name}}. Status: {{trigger.state.state}}.", "align": "left" }
    ]
  },
  "output_format": "base64",
  "file_name": "",
  "file_path": ""
}

Campos del JSON

Campo Tipo Descripción
document object Modelo del documento (página, fuente, márgenes y bloques de header/content/footer).
document.page_size string Tamaño de página (A4, Letter, etc.).
document.orientation string portrait o landscape.
document.blocks array Bloques del cuerpo del documento (cada uno con su type y campos).
output_format string base64, file o both.
file_name string Nombre del archivo (cuando aplica). Soporta interpolación.
file_path string Directorio del servidor donde se guarda el archivo (cuando aplica).

Output: Dónde viene la data del nodo

Con output_format: base64, la salida incluye el PDF como pdf_base64, listo para usarse en nodos posteriores (por ejemplo, convertirlo a archivo con [[base64-to-file]] o adjuntarlo a un correo). Con file o both, el PDF se guarda como archivo en la ruta indicada.


Ejemplos de uso

Ejemplo 1: Acta de incidente de intrusión

Caso de uso: Al dispararse una alarma de intrusión, se genera un PDF con el título del incidente y un párrafo con los datos del evento, para adjuntarlo al correo de notificación.

  • Page: A4, Portrait
  • Content: un bloque Heading (Incident Report) y un bloque Paragraph con datos del flujo.
  • Output Format: Base64

(ver estructura JSON anterior)

Ejemplo 2: Parte de mantenimiento con tabla

Caso de uso: Generar un parte de mantenimiento con una tabla de tareas realizadas y guardarlo como archivo.

  • Content: bloque Table con las tareas.
  • Output Format: File · File Name: maintenance-{{trigger.object_id}}.pdf

Validación y errores

Condición Causa / Solución habitual
El PDF sale vacío Agrega al menos un bloque de contenido en la sección Content.
No se guarda el archivo Con formato File/Both, verifica que File Name y Directory Path sean válidos y accesibles en el servidor.
Variables sin reemplazar Revisa que las expresiones {{variable}} correspondan a datos disponibles en el flujo.

Buenas prácticas

  • Estructurar con bloques: combina títulos, párrafos y tablas para reportes legibles; usa la vista previa para validar el resultado.
  • Datos dinámicos: aprovecha la interpolación {{variable}} para insertar fecha, objeto y estado del evento.
  • Elegir el formato de salida adecuado: usa base64 para adjuntar/encadenar y file cuando necesites persistir el documento.
  • Encadenar con otros nodos: combina con [[base64-to-file]] o con Enviar correo para entregar el reporte generado.