生成文档 这是一个适用于 Zapier 的 PDF4me 操作,用于执行邮件合并:它接受 Word、HTML 或 PDF 模板以及 JSON 或 XML 数据文件,并返回合并后的文档。Zap 可以监视文件夹,合并每条记录,并保存所有结果,而无需用户打开 Word。
市面上所有的邮件合并教程都假设用户坐在 Word 里,按照向导的步骤操作。这种方法偶尔有效,但如果需要按计划生成上百张发票,或者数据来自系统而非用户桌面上的电子表格,这种方法就行不通了。本文将介绍模板语法以及可以自动运行合并的 Zap 程序。
使用双尖括号语法在 Word 文档中写入合并域。将该模板保存在一个 Dropbox 文件夹中,并将数据保存在另一个文件夹中。Zap 会获取数据,将两个文件传递给 PDF4me 的“生成文档”操作,并保存合并后的结果。每次运行选择“单个”操作以生成一个文档,选择“多个”操作以生成多个文档。
基于“为什么”的问答
为什么使用 Word 模板而不是用代码构建文档? 因为负责撰写发票文本的人通常与负责编写代码的人并非同一人。Word模板可以由任何撰写发票内容的人编辑,下次运行程序时无需部署,也无需开发人员参与,即可自动应用这些编辑。
为什么选择 JSON 或 XML 而不是电子表格? 这些是系统输出的数据格式。Word 中的邮件合并功能会读取由用户导出的工作表。当触发事件是下单或提交表单时,数据已经结构化,合并功能应该能够直接接受这种格式的数据。
为什么会有两个“生成文档”操作? “生成单个文档”操作会合并一条记录并返回一个文件。“生成多个文档”操作接受一个数组,并为每个元素返回一个文件。通常情况下,如果 Zap 预期生成多个文档,但却只生成一个文档,这是因为选择了错误的参数。
为什么要把模板放在单独的文件夹里? 触发器会监视数据文件夹。如果模板与数据位于同一位置,则上传修改后的模板会触发 Zap,并尝试将其与模板合并,就像合并记录一样。
您将获得
输入: 包含合并字段的 Word 模板,以及 JSON 或 XML 记录。 输出: 合并后的文档已保存回云存储,可以发送或存档。
你需要什么
- Zapier。 打开 PDF4me Zapier 应用多步骤 Zap 需要 Zapier 付费计划。
- PDF4me API密钥。 获取您的 API 密钥首次添加 PDF4me 操作时进行连接。
- 云存储 一个文件夹用于存放模板,另一个文件夹用于存放传入数据。
- Word模板 使用下面 PDF4me 语法编写的合并字段。
用一段话解释一下什么是邮件合并?
邮件合并功能从数据源读取值,并将每个值放入模板中对应的占位符中。您只需保留两样东西:包含合并字段的模板和提供值的数据源。合并引擎会将它们合并,并为每个记录返回一个最终文档。
PDF4me接受 Word、HTML 和 PDF 模板功能。Word 是三者中最丰富的,因为它的语法支持条件语句、表格、重复部分、图像和内联 HTML,而不仅仅是简单的查找和替换。
如何设计 Word 模板?
合并字段时,字段名称要用双尖括号括起来:
<<[FieldName]>>
将该值粘贴到 Word 文档中对应的位置。括号内的名称与 JSON 或 XML 记录中的键相匹配。
Word模板语法参考
| 你想 | 文档 |
|---|---|
| 完整的语法,从头到尾 | 概述 |
| 条件语句 | 文本控件 |
| 随数据增长的表格 | 表格 |
| 重复段落和章节 | 重复段落 |
| 插入图片 | 插入图片 |
| 插入原始 HTML | 插入 HTML |
| 数字和日期格式 | 格式化 |
| 变量和列表 | 变量 |

这是一个使用表格和条件的示例发票模板。表格中的每行数据对应一个项目,重复一次。
如何构建“生成文档”Zap?
Zap 由四个活动部分组成:启动程序、模板、合并以及结果存放位置。
- 扳机。 选择与数据到达位置相匹配的触发器。对于 Dropbox 来说,就是这样。 文件夹中的新文件 指向您的数据文件夹。
- 获取模板。 触发器只会携带刚刚到达的文件,所以模板需要单独读取。Dropbox 就是这样。 查找文件指向模板文件夹,并使用模板的确切文件名。
- 合并。 添加 PDF4me 生成文档 执行操作并将两个文件映射到其中。
- 节省。 添加 上传文件 将结果写回。如果合并返回多个文档,请将此内容放入一个 从行项目创建循环 从 Zapier 循环 所以每个文档只运行一次。
生成文档参数
| 范围 | 必需的 | 它的作用 |
|---|---|---|
| 模板文件 | 必需的 | 模板本身,是从获取它的步骤映射而来的。 |
| 模板文件类型 | 必需的 | 您提供的模板类型是:Word、HTML 还是 PDF? |
| 输入数据格式类型 | 必需的 | 无论数据是以文本形式还是文件形式到达。 |
| 数据文本或数据文件 | 必需的 | 记录。填写哪一行取决于上一行。 |
| 输入数据类型 | 必需的 | 数据自身的格式:JSON 或 XML。 |
| 模板文件名 | 选修的 | 为操作指定模板名称,包括扩展名。 |
| 输出文档类型 | 选修的 | 生成文档的格式。 |
| 保持PDF可编辑 | 选修的 | 输出结果中保留可编辑的表单字段。 |
| 元数据 | 选修的 | 传递给合并操作的额外值。 |
提示。 模板文件类型和输入数据类型是最常被弄错的一对。如果输出结果中仍然显示占位符,请首先检查这两项:合并操作已经运行,只是它找不到要合并的内容。
单循环与多循环,以及何时需要循环
| 单项与多项 | 生成单个文档 | 生成多个文档 |
|---|---|---|
| 数据形状 | 一条记录 | 一个数组,每个文档一个对象 |
| 返回 | 一份文件 | 每个数组元素对应一个文档 |
| 后面需要一个循环 | 不 | 是的,为了保存每个结果 |
| 典型用途 | 一份订单一张发票 | 来自一次导出的一批语句 |

合并后的输出结果。模板中的所有占位符都已被替换,表格已扩展为每行一行。
运行 Zap 并验证
- 发布 电击。
- 将示例记录拖放到数据文件夹中,然后等待触发器轮询。
- 打开 Zap 运行 并确认“生成文档”步骤返回的是文件而不是错误。
- 打开输出并检查两件事:没有留下可见的占位符,并且重复表具有正确的行数。
你实际建造了什么? 这是一个文档工厂,其内容的所有权归模板编辑者所有,而非 Zap 维护者所有。更改模板后,下次运行将使用更改后的模板。同样的模式在 Make、n8n 和 Power Automate 上以相同的操作运行。
无需重建即可添加的常见变体
常见问题
什么是邮件合并?
从数据源读取值,并将每个值插入模板中对应的占位符,从而为每个记录生成一个最终文档。Word 的向导功能使这个术语广为人知,但操作本身与 Word 无关:任何能够理解模板和数据格式的引擎都可以执行此操作,而“生成文档”操作正是如此。
如何在Word中进行邮件合并?
如果你指的是 桌面向导你需要将 Word 指向电子表格并按照其对话框进行操作。如果你指的是在不使用向导的情况下合并 Word 模板,则需要使用上述双尖括号语法编写字段,然后将模板和 JSON 或 XML 记录传递给“生成文档”程序。模板仍然是一个 Word 文件;不会打开 Word 来生成输出。
不用Word可以进行邮件合并吗?
是的。合并过程通过 PDF4me API 完成,因此全程无需创建 Word 文档。您只需要 Word 或任何可以打开 .docx 文件的编辑器来创建模板,如果您不想使用 Word,PDF4me 也支持 HTML 和 PDF 模板。
如何从一个模板生成多个文档?
使用 生成多个文档 并传入一个数组,每个对象对应一个文档。它会为每个元素返回一个文档。然后将上传步骤放在一个 从行项目创建循环 这样一来,每个结果都会单独保存,而不是只保存第一个结果。
故障排除
数据与模板不匹配。请检查输入数据类型是否与记录的实际格式相符,记录是否有效,以及键名是否与尖括号内的内容完全一致(包括大小写)。
要么是本应使用“多条记录”的操作却使用了“单条记录”操作,要么是上传步骤位于循环之外。无论上传了多少条记录,这两种情况都只会生成一个保存的文件。
模板中未标记重复区域。表格在不断增长时,需要在行周围使用重复语法,而不仅仅是合并行内的字段。请参阅重复段落文档。
模板位于被监控的文件夹内。将其移动到单独的文件夹,并将获取步骤指向该文件夹。
后续步骤
同样的四步模式(监视、获取模板、合并、保存)可以处理任何“数据输入,品牌文档输出”的自动化操作。
