动态文档生成是指自动创建一批文档,并使用来自数据源的动态数据进行个性化定制的过程。例如,发票可以根据收件人的姓名进行个性化设置。创建包含动态数据的文档需要数据源,例如列表、电子表格、数据库、JSON 或数组。合并字段是预定义模板中的占位符,稍后会使用来自上述数据源或其他受支持数据源的数据进行替换。
创建包含动态数据的发票需要应用邮件合并或合并字段等技术。动态文档生成最常用的方法之一是使用Mustache 渲染,它在模板设计方面更加便捷。自定义发票基于使用 Word 或其他具备合并字段功能的表单创建工具创建的文档模板。本文将讨论如何使用 Mustache 语法 ` {{placeholder field}} ` 创建的模板,该语法随后会被动态数据替换。
PDF4me的 Make 文档生成操作允许您创建场景来生成动态文档并实现自动化。如果您已准备好模板和动态数据,即可实现文档生成过程的自动化。模板可以是 Word 文件、HTML 或任何其他受支持的格式。数据可以是电子表格、CSV、JSON、XML 或数据列表。
生成动态发票
使用 Make 生成动态数据发票需要将模板和数据存储在云存储平台中。至少模板应该存储在 Dropbox 等云存储服务中,而数据可以直接传递到输入字段。
让我们以 Make 场景为例,创建一个如下所示的示例发票。
在我们的使用场景中,预计以下样本将可在 Dropbox 位置获取。
添加文件监视触发器以启动场景
创建一个 Dropbox 模块来监听模板文件的到达。一旦新的模板文件到达文件夹,该场景就会被触发。

添加 Dropbox 文件下载操作
一旦在源文件夹中检测到模板文件,带有“下载文件”操作的 Dropbox 模块就会将文件从存储设备传递给 PDF4me 操作。我们需要添加两个“下载文件”操作。
一个用于下载模板。

另一个用于下载 JSON 数据

添加 PDF4me 模块以生成文档操作
接下来,我们需要添加 PDF4me 模块及其“生成文档”操作。在这里,您需要配置模板类型、输出类型和输入数据。输入数据可以直接在字段中输入,或者像我们这里一样,配置为从 JSON 文件中获取数据。

对于此用例模板,输入字段的数据应如下所示:
{ "文档": [ { "页眉": { "文档类型": "原件" }, "正文": { "列1": "数量", "列2": "描述", "列3": "单价", "列4": "总计", "发票": { "编号": 14957, "日期": "2022年2月25日", "说明": "发票1说明", "小计": 200150, "税额": "18%", "到期日": "2022年3月25日", "运费": "200" }, "开票人": { "电话": "989797", "传真": "998463", "电子邮件": "[email protected]", "网址": "www.doc1.com", "地址": { "公司": "机构1", "街道": "街道1", "城市": "城市1", "邮编": "123456" } }, "收件人": { "姓名": "收件人 1", "地址": { "街道": "testveien 3 ", "城市": "城市 1", "邮编": "0555", "国家": "国家 1" } }, "产品": [ { "数量": 1, "描述": "商品 1", "单价": 45, "总价": 867 }, { "数量": 2, "描述": "商品 2", "单价": 123, "总价": 3464 }, { "数量": 3, "描述": "商品 3", "单价": 323, "总价": 6564 } ] }, "页脚": { "电话": "phone123", "传真": "fax123", "电子邮件": "[email protected]", "网址": "www.123.com" }
} ] }
添加迭代器来处理多个输出文件
显而易见,PDF4me 操作会根据数据生成多个文件。为了处理这种情况,我们需要一个 Make 迭代器模块来处理每个文件,以便进行下一次操作。
添加 Dropbox 上传模块以保存输出文件
创建一个 Dropbox 模块,并添加“上传文件”操作,将所有文件保存到指定文件夹。

我们的场景输出结果应该与以下文档类似。
