Saltar al contenido principal

PDF4me Plantilla de Word

Qué abarca esta guía

Esta guía le explica cómo generar una factura única. PDF en n8n utilizando el paquete plantilla.docx y datos.json paquete de muestra. La plantilla de Word utiliza PDF4me <<[fieldName]>> etiquetas de combinación (sintaxis del motor de informes LINQ). Usted carga el .docx como datos binarios, pegar o cargar coincidencia JSON/XML/CSVy recibir uno terminado PDF por carrera.

Entradas de blog relacionadas
Aún no hay ninguna entrada de blog sobre esta función; estará disponible próximamente.
Mientras tanto, echa un vistazo al blog de PDF4me para encontrar tutoriales y flujos de trabajo para todas las plataformas.
Visita el blog

Antes de comenzar

Plantilla de Word con etiquetas de combinación
La muestra plantilla.docx es un diseño de factura. Los valores dinámicos utilizan <<[Número de inventario]>>, <<[companyName1]>>, <<[productName]>>y etiquetas similares. Los nombres de los campos distinguen entre mayúsculas y minúsculas y deben coincidir exactamente con las claves de sus datos.
Archivo de datos coincidente
Usar datos.json (recomendado), test.xml, o prueba.csvLos tres tienen los mismos valores de factura. Elija el Tipo de datos del documento en el nodo para que coincida con el formato de archivo que proporcione.
PDF4me credencial en n8n
Crear un PDF4me credencial en n8n y pega tu API clave. La misma clave funciona en todos PDF4me nodos en su instancia.

Paquete de archivos de muestra

Descarga los cuatro archivos a continuación. Están diseñados para funcionar conjuntamente: una plantilla más tres formatos de datos equivalentes.

¿Qué contienen los archivos de muestra?

Diseño de plantilla (template.docx)

La plantilla de ejemplo es de una sola página. factura con etiquetas fijas y campos de combinación dinámicos:

Sección de documentosEtiqueta estática (fija en la plantilla)Etiqueta de combinación (rellenada a partir de datos)
EncabezamientoFACTURA(estático)
Metadatos de la facturaFactura #<<[InvNr]>>
Metadatos de la facturaImporte de la factura<<[invAmt]>>
Metadatos de la facturaFecha de la factura<<[invDate]>>
Metadatos de la facturaDESPUÉS #<<[invPO]>>
Metadatos de la facturaPeríodo de facturación<<[from]>> a <<[to]>>
Facturado aFACTURADO A<<[companyName1]>>, <<[companyName2]>>, <<[addressline1]>>, <<[addressline2]>>, <<[country]>>
Fila de artículo de líneaDescripción / Precio / % IVA / IMPORTE (USD)<<[productName]>>, <<[price]>>, <<[vat]>>, <<[amount]>>
Sintaxis de la etiqueta de combinación

Plantillas de Word de PDF4me <<[fieldName]>> (corchetes angulares dobles con corchetes cuadrados). Esto es diferente de HTML sintaxis de bigote ({{fieldName}}). Ver el Guía de sintaxis de plantillas de Word para bucles, condiciones y cadenas de formato.

Mapeo de campos en todos los archivos de datos

Cada valor dinámico en la plantilla se asigna a una clave en data.json, un XML elemento en test.xml, o un CSV columna en test.csv:

Template tagJSON key (data.json)XML element (test.xml)Sample value
<<[companyName1]>>companyName1CompanyName1Muster AG
<<[companyName2]>>companyName2CompanyName2Hans Muster
<<[addressline1]>>addressline1AddressLine1example street
<<[addressline2]>>addressline2AddressLine28000 Zürich
<<[country]>>countryCountrySwitzerland
<<[productName]>>productNameProductNamePDF4me
<<[price]>>pricePrice1000
<<[vat]>>vatVAT8.00
<<[amount]>>amountAmount1000
<<[InvNr]>>InvNrInvoiceNumber202311InV
<<[invAmt]>>invAmtInvoiceAmount1000
<<[invDate]>>invDateInvoiceDate2023-11-24
<<[invPO]>>invPOPurchaseOrder1234567
<<[from]>>fromFromDate2023-10-24
<<[to]>>toToDate2023-10-24

El flujo de trabajo de un vistazo

La forma más rápida de probar el paquete de muestras en n8n:

Manual Trigger → Read Binary File (template.docx) → PDF4me Generate Document (Single) → (optional) Write Binary File
Pason8n nodoObjetivo
1Disparador manualInicie el flujo de trabajo bajo demanda.
2Leer archivo binarioCargas template.docx en propiedad binaria data
3PDF4me → Generar documento (único)Combina plantilla + datos, genera uno PDF
4Escribir archivo binario (opcional)Guarda generated_document_output.pdf al disco
Generar documento (único) nodo n8n configurado con tipo de archivo de plantilla PDF4me Word Template, tipo de salida PDF, tipo de entrada de archivo de plantilla Datos binarios, datos de propiedad binaria de plantilla, nombre de archivo de plantilla template.docx, tipo de entrada de datos del documento Texto, tipo de datos del documento JSON, ejemplo de carga útil de texto de datos del documento JSON

Configuración de destino: Plantilla de Word desde binario + JSON pegado en Texto de los datos del documento + PDF producción


Paso 1: Descargue y coloque los archivos de muestra.

  1. Descargar template.docx y data.json del Paquete de archivos de muestra arriba.
  2. Guarda ambos archivos en algún lugar n8n pueden leerlos, por ejemplo C:\pdf4me-samples\ En una instancia autohospedada, o súbalas a Google Drive/Dropbox si prefiere usar activadores en la nube más adelante.
  3. Opcionalmente, descárguelo. test.xml o test.csv Si quieres probar XML o CSV tipos de datos en lugar de JSON.

Paso 2: Crear el n8n Flujo de trabajo

  1. En n8n, crear un nuevo flujo de trabajo.
  2. Agregar un Disparador manual nodo (o cualquier disparador que prefiera para producción).
  3. Agregar un Leer archivo binario nodo después del disparador.
  4. Agregar PDF4me → Generar documento (único) Después de leer el archivo binario.
  5. Conecta los nodos en secuencia.

Paso 3: Cargar la plantilla de Word (Read Binary File)

Configurar el Leer archivo binario nodo:

CampoValor
Ruta del archivoRuta completa a su descarga template.docx
Nombre de la propiedaddata (predeterminado; esto se convierte en la propiedad binaria el PDF4me lecturas de nodos)

Ejecute este nodo una vez y confirme que el elemento de salida muestra un campo binario llamado data con nombre de archivo template.docx.


Paso 4: Configurar PDF4me Generar documento (único)

Abrir el PDF4me Node.js y configure estos campos. Los valores que se muestran a continuación coinciden exactamente con el paquete de muestra.

Configuración principal

CampoValorNotas
Credencial para conectarse conSu PDF4me credencialConseguir API llave
RecursoGenerate
Generar operacionesGenerar documento (único)
Tipo de archivo de plantillaPlantilla de Word PDF4mePartidos .docx con <<[field]>> etiquetas
Tipo de salidaPDFUsar Word si necesita un documento fusionado editable .docx en cambio

Entrada de plantilla (desde Leer archivo binario)

CampoValor
Tipo de entrada de archivo de plantillaDatos binarios
Propiedad binaria de plantilladata
Nombre del archivo de plantillatemplate.docx

Datos del documento (pegar JSON desde data.json)

CampoValor
Tipo de entrada de datos del documentoTexto
Tipo de datos del documentoJSON
Texto de los datos del documentoPegue el contenido completo de data.json (ver el bloque a continuación)
{
"companyName1": "Muster AG",
"companyName2": "Hans Muster",
"addressline1": "example street",
"addressline2": "8000 Zürich",
"country": "Switzerland",
"productName": "PDF4me",
"price": 1000,
"vat": 8.0,
"amount": 1000,
"InvNr": "202311InV",
"invAmt": 1000,
"invDate": "2023-11-24",
"invPO": "1234567",
"from": "2023-10-24",
"to": "2023-10-24"
}

Opciones de salida

CampoValor
Mantener PDF EditableOff (default)
Nombre de salida de datos binariosdata (por defecto)

Paso 5: Ejecutar y verificar el PDF

  1. Haga clic Ejecutar flujo de trabajo (o huir de la PDF4me nodo).
  2. Abrir el PDF4me Salida del nodo. Bajo Binario, abre el archivo en propiedad data (Nombre del archivo generated_document_output.pdf).
  3. Confirme que la factura emitida muestre:
    • Factura #202311InV
    • Facturado a → Muster AG / Hans Muster / calle Example / 8000 Zúrich / Suiza
    • Elemento de línea → PDF4me, precio 1000, IVA 8.00, importe 1000
    • Período de facturación2023-10-24 a 2023-10-24

Si un campo aparece en blanco, compare el nombre de la etiqueta en template.docx con el JSON clave. Deben coincidir exactamente (incluyendo mayúsculas y minúsculas): InvNr no invNr).


Paso 6: Guardar el resultado (opcional)

Agregar un Escribir archivo binario nodo después PDF4me:

CampoValor
Nombre del archivoinvoice-output.pdf (o utilice una expresión)
Nombre de la propiedad de datosdata
Ruta de salidaCarpeta donde n8n debería escribir el archivo

Formatos de datos alternativos

Lo mismo template.docx funciona con los tres archivos de datos del paquete de muestra. Solo el Tipo de datos del documento y cambio de carga útil.

Opción A: JSON archivo como binario (data.json)

  1. Añade un segundo Leer archivo binario nodo para data.json.
  2. Utilice un Unir Nodo para combinar el binario de la plantilla y el binario de datos en un solo elemento (o ejecutar la carga de datos en una rama separada).
  3. En PDF4me: Tipo de entrada de datos del documento = Datos binarios, Tipo de datos del documento = JSON, Propiedad binaria del documento = data, Nombre del archivo de datos del documento = data.json.

:::precaución: Colisión de nombres de propiedades binarias Cuando tanto la plantilla como los datos utilizan la misma propiedad data En el mismo elemento, se sobrescriben entre sí. Utilice nombres de propiedades separados (por ejemplo, template y dataFile) o fusionar elementos de dos nodos de lectura de archivos binarios.

:::

Opción B: XML (test.xml)

Colocar Tipo de datos del documento a XML y pegar el contenido de test.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Invoice>
<CompanyName1>Muster AG</CompanyName1>
<CompanyName2>Hans Muster</CompanyName2>
<AddressLine1>example street</AddressLine1>
<AddressLine2>8000 Zürich</AddressLine2>
<Country>Switzerland</Country>
<ProductName>PDF4me</ProductName>
<Price>1000</Price>
<VAT>8.00</VAT>
<Amount>1000</Amount>
<InvoiceNumber>202311InV</InvoiceNumber>
<InvoiceAmount>1000</InvoiceAmount>
<InvoiceDate>2023-11-24</InvoiceDate>
<PurchaseOrder>1234567</PurchaseOrder>
<FromDate>2023-10-24</FromDate>
<ToDate>2023-10-24</ToDate>
</Invoice>

Opción C: CSV (test.csv)

Colocar Tipo de datos del documento a CSV y pegar el CSV Cuerpo (fila de encabezado + una fila de datos):

companyName1,companyName2,addressline1,addressline2,country,productName,price,vat,amount,InvNr,invAmt,invDate,invPO,from,to
"Muster AG","Hans Muster","example street","8000 Zürich","Switzerland","PDF4me",1000,8.00,1000,"202311InV",1000,"2023-11-24","1234567","2023-10-24","2023-10-24"

CSV Los encabezados de columna coinciden con el JSON claves directamente, que se asignan a la <<[fieldName]>> etiquetas en la plantilla.


Patrones de flujo de trabajo de producción

Métodos comunes para suministrar plantillas y datos en producción.Once the sample test works, replace the Manual Trigger and Read Binary File nodes with these patterns.
Disparador de almacenamiento en la nube
  1. El disparador de Google Drive / Dropbox / OneDrive se activa al crear un archivo nuevo.
  2. Descargar nodos plantilla.docx (o utilice una ruta de plantilla fija).
  3. Construir JSON en un Código o Colocar nodo de CRMCampos de la hoja.
  4. PDF4me fusiones y salidas PDF al correo electrónico o al almacenamiento.
Webhook con dinámica JSON
  1. El webhook recibe la información del pedido/factura.
  2. Plantilla cargada una vez desde URL o almacenamiento binario.
  3. Mapear el cuerpo del webhook a Texto de los datos del documento con una expresión.
  4. Las claves aún deben coincidir <<[fieldName]>> etiquetas en la plantilla.
Público URLs para plantillas y datos
  1. Anfitrión plantilla.docx y datos.json en público HTTPS URLs.
  2. Colocar Tipo de entrada de archivo de plantilla = URL, URL del archivo de plantilla = enlace de plantilla.
  3. Colocar Tipo de entrada de datos del documento = URL, URL del archivo de datos del documento = enlace de datos.
  4. No se requieren nodos de descarga previos.

Preguntas frecuentes

What placeholder syntax does PDF4me Word Template use?+
Use <<[fieldName]>> inside your .docx file. This is the PDF4me LINQ Reporting Engine syntax, not HTML mustache {{fieldName}}. For loops use <<foreach [item in items]>> ... <</foreach>>, for conditions use <<if [condition]>> ... <</if>>. See the Word Template Syntax guide for the full reference.
Why is a field blank in the generated PDF?+
The data key must match the template tag exactly, including case. InvNr in the template requires "InvNr" in JSON, not "invoiceNumber" or "invnr". Open template.docx and compare each <<[tag]>> with your data file. Empty values also render as blank without an error.
Can I use data.json as a file instead of pasting JSON?+
Yes. Load data.json with Read Binary File, set Document Data Input Type to Binary Data, Document Data Type to JSON, and point Document Binary Property to the binary field. If the template also uses binary property data, rename one property (e.g. template vs dataFile) or merge items from separate nodes.
JSON vs XML vs CSV: which should I use?+
JSON is the simplest for n8n because keys map directly to <<[fieldName]>> tags (as in data.json). XML (test.xml) uses PascalCase element names that PDF4me binds to the same template fields. CSV (test.csv) uses column headers matching the JSON keys, which is useful when data comes from spreadsheets or exports.
PDF or Word output?+
Set Output Type to PDF for sharing, emailing, or archiving. Set Output Type to Word when the recipient needs to edit the merged document after generation. The sample invoice works with both.

Guías relacionadas