PDF4me Word模板
本指南涵盖的内容
本指南将引导您完成生成单张发票的步骤。 PDF 在 n8n 使用捆绑的 template.docx 和 data.json 样品包。Word模板使用 PDF4me <<[fieldName]>> 合并标签(LINQ 报表引擎语法)。您加载 .docx 作为二进制数据,粘贴或加载匹配 JSON/XML/CSV并收到一份成品 PDF 每次运行。
开始之前
template.docx 是一种发票布局。动态值使用 <<[InvNr]>>, <<[companyName1]>>, <<[产品名称]>>以及类似的标签。字段名称区分大小写,并且必须与您的数据键完全匹配。data.json (受到推崇的), 测试.xml, 或者 测试.csv这三张发票的金额相同。请选择 文档数据类型 在节点中匹配您提供的文件格式。示例文件包
请下载下方全部四个文件。它们设计为协同工作:一个模板文件和三种等效数据格式。
<<[字段]>> 标签示例文件包含哪些内容
模板布局(template.docx)
示例模板为单页模板。 发票 使用固定标签和动态合并字段:
| 文档部分 | 静态标签(固定在模板中) | 合并标签(根据数据填充) |
|---|---|---|
| 标题 | 发票 | (静止的) |
| 发票元数据 | 发票 # | <<[InvNr]>> |
| 发票元数据 | 发票金额 | <<[invAmt]>> |
| 发票元数据 | 发票日期 | <<[invDate]>> |
| 发票元数据 | 后 # | <<[invPO]>> |
| 发票元数据 | 计费周期 | <<[from]>> 到 <<[to]>> |
| 账单支付给 | 账单 | <<[companyName1]>>, <<[companyName2]>>, <<[addressline1]>>, <<[addressline2]>>, <<[country]>> |
| 行项目行 | 描述 / 价格 / 增值税率 / 金额(美元) | <<[productName]>>, <<[price]>>, <<[vat]>>, <<[amount]>> |
:::提示 合并标签语法
PDF4me Word模板使用 <<[fieldName]>> (双尖括号加方括号)。这与 HTML 胡子语法({{fieldName}})。参见 Word模板语法指南 for 循环、条件语句和格式化字符串。
:::
所有数据文件中的字段映射
模板中的每个动态值都映射到一个键。 data.json, 一个 XML 元素 test.xml或者 CSV 列 test.csv:
| Template tag | JSON key (data.json) | XML element (test.xml) | Sample value |
|---|---|---|---|
<<[companyName1]>> | companyName1 | CompanyName1 | Muster AG |
<<[companyName2]>> | companyName2 | CompanyName2 | Hans Muster |
<<[addressline1]>> | addressline1 | AddressLine1 | example street |
<<[addressline2]>> | addressline2 | AddressLine2 | 8000 Zürich |
<<[country]>> | country | Country | Switzerland |
<<[productName]>> | productName | ProductName | PDF4me |
<<[price]>> | price | Price | 1000 |
<<[vat]>> | vat | VAT | 8.00 |
<<[amount]>> | amount | Amount | 1000 |
<<[InvNr]>> | InvNr | InvoiceNumber | 202311InV |
<<[invAmt]>> | invAmt | InvoiceAmount | 1000 |
<<[invDate]>> | invDate | InvoiceDate | 2023-11-24 |
<<[invPO]>> | invPO | PurchaseOrder | 1234567 |
<<[from]>> | from | FromDate | 2023-10-24 |
<<[to]>> | to | ToDate | 2023-10-24 |
工作流程概览
测试样品包最快的方法是…… n8n:
Manual Trigger → Read Binary File (template.docx) → PDF4me Generate Document (Single) → (optional) Write Binary File
| 步 | n8n 节点 | 目的 |
|---|---|---|
| 1 | 手动扳机 | 按需启动工作流程 |
| 2 | 读取二进制文件 | 负载 template.docx 进入二元属性 data |
| 3 | PDF4me → 生成文档(单个) | 合并模板和数据,输出一个结果。 PDF |
| 4 | 写入二进制文件 (选修的) | 保存 generated_document_output.pdf 到磁盘 |
/generate-document-single-full-word.png)
目标配置:来自二进制文件的 Word 模板 JSON 粘贴 文档数据文本 + PDF 输出
步骤 1:下载并放置示例文件
- 下载
template.docx和data.json从 示例文件包 多于。 - 将这两个文件保存到某个位置。 n8n 例如,可以阅读它们。
C:\pdf4me-samples\您可以将它们托管在自己的实例上,或者如果您以后更喜欢云端触发器,也可以将它们上传到 Google Drive / Dropbox。 - (可选)下载
test.xml或者test.csv如果你想测试 XML 或者 CSV 数据类型而不是 JSON。
步骤 2:创建 n8n 工作流程
- 在 n8n创建一个新的工作流程。
- 添加一个 手动扳机 节点(或您喜欢的任何生产触发器)。
- 添加一个 读取二进制文件 触发器之后的节点。
- 添加 PDF4me → 生成文档(单个) 读取二进制文件之后。
- 按顺序连接节点。
步骤 3:加载 Word 模板(Read Binary File)
配置 读取二进制文件 节点:
| 场地 | 价值 |
|---|---|
| 文件路径 | 下载文件的完整路径 template.docx |
| 物业名称 | data (默认值;这将成为二进制属性) PDF4me 节点读取) |
执行此节点一次,并确认输出项显示一个名为“ data 文件名 template.docx。
步骤 4:配置 PDF4me 生成文档(单个)
打开 PDF4me 进入节点并设置这些字段。以下值与示例包中的值完全一致。
核心设置
| 场地 | 价值 | 笔记 |
|---|---|---|
| 用于连接的凭证 | 你的 PDF4me 凭证 | 得到 API 钥匙 |
| 资源 | Generate | |
| 生成操作 | 生成文档(单个) | |
| 模板文件类型 | PDF4me Word模板 | 比赛 .docx 和 <<[field]>> 标签 |
| 输出类型 | 使用 Word 如果您需要可编辑的合并 .docx 反而 |
模板输入(来自读取二进制文件)
| 场地 | 价值 |
|---|---|
| 模板文件输入类型 | 二进制数据 |
| 模板二进制属性 | data |
| 模板文件名 | template.docx |
文档数据(粘贴 JSON 数据) data.json)
| 场地 | 价值 |
|---|---|
| 文档数据输入类型 | 文本 |
| 文档数据类型 | JSON |
| 文档数据文本 | 粘贴全部内容 data.json (见下方方框) |
{
"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"
}
输出选项
| 场地 | 价值 |
|---|---|
| 保持 PDF 可编辑 | Off (default) |
| 二进制数据输出名称 | data (默认) |
步骤 5:执行并验证 PDF
- 点击 执行工作流程 (或者逃离) PDF4me 节点)。
- 打开 PDF4me 节点输出。 二进制以属性模式打开文件
data(文件名generated_document_output.pdf)。 - 确认生成的发票显示:
- 发票 # →
202311InV - 账单支付给 → Muster AG / Hans Muster / example street / 8000 苏黎世 / 瑞士
- 项目 → PDF4me,价格 1000,增值税 8.00,金额 1000
- 计费周期 →
2023-10-24到2023-10-24
- 发票 # →
如果某个字段显示为空,请比较标签名称。 template.docx 和 JSON 关键在于它们必须完全匹配(包括大小写): InvNr 不是 invNr)。
步骤 6:保存输出(可选)
添加一个 写入二进制文件 节点之后 PDF4me:
| 场地 | 价值 |
|---|---|
| 文件名 | invoice-output.pdf (或者使用表达式) |
| 数据属性名称 | data |
| 输出路径 | 文件夹所在位置 n8n 应该写入文件 |
替代数据格式
相同 template.docx 适用于示例包中的所有三个数据文件。仅限 文档数据类型 有效载荷发生变化。
选项A: JSON 文件为二进制文件(data.json)
- 再加一个 读取二进制文件 节点
data.json。 - 使用 合并 节点用于将模板二进制文件和数据二进制文件合并为一个项目(或在单独的分支中运行数据加载)。
- 在 PDF4me: 文档数据输入类型 = 二进制数据, 文档数据类型 = JSON, 文档二进制属性 =
data, 文档数据文件名 =data.json。
:::注意:二进制属性名称冲突
当模板和数据都使用属性时 data 对于同一个项目,它们会互相覆盖。请使用不同的属性名称(例如: template 和 dataFile或者合并来自两个“读取二进制文件”节点的条目。
:::
选项B: XML (test.xml)
放 文档数据类型 到 XML 并粘贴以下内容 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>
选项C: CSV (test.csv)
放 文档数据类型 到 CSV 并粘贴 CSV 主体(标题行 + 一行数据):
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 列标题与 JSON 直接映射到键 <<[fieldName]>> 模板中的标签。
生产工作流程模式
生产中提供模板和数据的常用方法Once the sample test works, replace the Manual Trigger and Read Binary File nodes with these patterns.
- Google Drive / Dropbox / OneDrive 触发器会在新文件出现时触发。
- 下载节点获取
template.docx(或者使用固定的模板路径)。 - 建造 JSON 在 代码 或者 放 来自节点的 CRM/工作表字段。
- PDF4me 合并和输出 PDF 发送到电子邮件或存储设备。
- Webhook接收订单/发票有效负载。
- 模板已加载一次 URL 或二进制存储。
- 将 webhook 正文映射到 文档数据文本 带着表情。
- 密钥仍必须匹配
<<[fieldName]>>模板中的标签。
- 主持人
template.docx和data.json在公共场合 HTTPS URLs。 - 放 模板文件输入类型 = URL, 模板文件 URL = 模板链接。
- 放 文档数据输入类型 = URL, 文档数据文件 URL = 数据链路。
- 无需预先下载节点。
常见问题解答
相关指南
- 生成文档(单份)概述所有参数、输出字段和模板类型
- Word模板语法:
<<[field]>>标签、循环、条件、格式 - 产生 PDF 从 Word 模板 Make:相同的样本模式 Make