跳到主要内容

使用 Make 和 PDF4me 生成动态发票

4 min read
PDF4me Team

动态文档生成是指自动创建一批文档,并使用来自数据源的动态数据进行个性化定制的过程。例如,发票可以根据收件人的姓名进行个性化设置。创建包含动态数据的文档需要数据源,例如列表、电子表格、数据库、JSON 或数组。合并字段是预定义模板中的占位符,稍后会使用来自上述数据源或其他受支持数据源的数据进行替换。

创建包含动态数据的发票需要应用邮件合并或合并字段等技术。动态文档生成最常用的方法之一是使用Mustache 渲染,它在模板设计方面更加便捷。自定义发票基于使用 Word 或其他具备合并字段功能的表单创建工具创建的文档模板。本文将讨论如何使用 Mustache 语法 ` {{placeholder field}} ` 创建的模板,该语法随后会被动态数据替换。

PDF4me的 Make 文档生成操作允许您创建场景来生成动态文档并实现自动化。如果您已准备好模板和动态数据,即可实现文档生成过程的自动化。模板可以是 Word 文件、HTML 或任何其他受支持的格式。数据可以是电子表格、CSV、JSON、XML 或数据列表。

生成动态发票​

使用 Make 生成动态数据发票需要将模板和数据存储在云存储平台中。至少模板应该存储在 Dropbox 等云存储服务中,而数据可以直接传递到输入字段。

让我们以 Make 场景为例,创建一个如下所示的示例发票。

在我们的使用场景中,预计以下样本将可在 Dropbox 位置获取。

添加文件监视触发器以启动场景​

创建一个 Dropbox 模块来监听模板文件的到达。一旦新的模板文件到达文件夹,该场景就会被触发。

监视 Dropbox 模块的文件操作

添加 Dropbox 文件下载操作​

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

一个用于下载模板。

Dropbox 模块的下载文件操作

另一个用于下载 JSON 数据

从 Dropbox 下载 JSON 数据

添加 PDF4me 模块以生成文档操作​

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

PDF4me 生成文档模块(适用于 Make)

对于此用例模板,输入字段的数据应如下所示:

{ "文档": [ { "页眉": { "文档类型": "原件" }, "正文": { "列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 模块,并添加“上传文件”操作,将所有文件保存到指定文件夹。

Dropbox 模块的上传文件操作

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