跳到主要内容

使用 Make 从 HTML 模板进行动态开票

4 最小读取
PDF4me Team

生成动态文档是任何企业运营中不可或缺的一部分。我们处理大量的电子文档,这些文档需要根据每个收件人的实际情况进行动态数据定制。这些文档包括报价单、合同、发票、报告等等,它们可能使用通用模板,但数据是动态的。此外,根据公司规模,我们还需要批量生成这些文档。

在某些情况下,您还需要生成 HTML 格式的文档,以便在浏览器中显示或以链接形式分享。例如,发票、收据等都会生成为 HTML 页面,以便收件人可以在其浏览器中快速查看。PDF4me 允许您使用 HTML 模板和数据源生成此类 HTML 文档。借助_Mustache 渲染或邮件合并功能,_您可以根据需要生成任意数量的文档。

PDF4me 的“生成文档”功能(位于 Make 中)允许您创建场景,使用 HTML 模板生成 HTML 格式的动态文档。

使用 HTML 模板实现动态发票​

如果您已准备好模板和动态数据,则可以实现生成过程的自动化。模板需要是一个存储在云存储中的 HTML 文件。数据可以是电子表格、CSV、JSON、XML 或数据列表。

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

在这种情况下,示例 HTML 模板应该位于 Dropbox 位置。

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

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

请留意 Dropbox 的文件模块。

添加 Dropbox 的下载文件模块​

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

下载 HTML 模板

另一个用于下载与模板对应的 JSON 数据。

下载 JSON 数据文件

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

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

PDF4me 生成文档操作

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

{ "文档": [ { "页眉": { "文档类型": "原件" }, "正文": { "列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 模块,并添加“上传文件”操作,将所有 HTML 文件保存到指定文件夹。HTML 模板将仅生成 HTML 输出。如果您希望生成 PDF 文件作为输出,可以添加一个“转换为 PDF”操作。

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