使用Integromat和PDF4me生成动态发票
动态文件生成是自动创建一批文件的过程,这些文件是用来源的动态数据进行个性化处理。例如,一张发票可能是个性化的,按名字称呼每个收件人。用动态数据创建文档需要一个数据源,如列表、电子表格、数据库、JSON或数组。合并字段是预定义模板中的占位符,以后将使用来自上述之一或任何其他支持的数据源的数据进行替换。
用动态数据创建发票需要应用邮件合并或使用合并字段等技术。最流行的动态文档生成方法之一涉及到使用mustache渲染,这在设计模板时要容易得多。自定义发票是基于使用Word或其他具有合并字段功能的表格创建者创建的文档模板。这里我们讨论使用mustache语法创建的模板–{{placeholder field}}–后来被动态数据所取代。
PDF4me 在Integromat中生成文档动作可以让你创建场景来生成动态文档,并使其自动化。如果你准备好了模板和动态数据,生成过程就可以自动化。模板可以是一个Word文件或HTML,或任何其他支持的格式。数据可以是Spreadsheet、CSV、JSON、XML或数据列表。
生成动态发票
使用Integromat生成带有动态数据的发票需要将模板和数据存储在云存储平台上。至少,模板应该在云存储中,如Dropbox,但数据可以直接传递到输入数据字段。
让我们看看使用Integromat方案创建一个像下面这样的发票样本。
在我们的用例中,预计在Dropbox的位置会有以下样本。
添加一个观察文件的触发器来启动场景
创建一个Dropbox模块来观察模板的到来。一旦新的模板文件到达文件夹中,就会触发该场景。
添加一个下载文件的Dropbox动作
一旦在源文件夹中检测到模板文件,带有下载文件动作的Dropbox模块将把文件从存储器中传到PDF4me动作中。我们需要添加2个下载文件的动作。
一个用于下载模板。
另一个用于下载JSON数据
添加PDF4me模块用于生成文档动作
接下来在方案中,我们必须添加PDF4me模块与生成文档的动作。在这里,你需要配置模板类型,输出类型,和输入数据。输入数据可以直接输入到字段中,或者在我们的案例中,配置为从JSON文件中获取数据。
对于用例中的模板,输入字段的数据应该如下所示。
{
"Documents": [
{
"header": {
"docType": "Original Copy"
},
"body": {
"Column1": "Quantity",
"Column2": "Description",
"Column3": "Unit Price",
"Column4": "Total",
"Invoice": {
"number": 14957,
"date": "25-02-2022",
"instructions": "Instruction Invoice 1",
"subTotal": 200150,
"tax": "18%",
"dueDate": "25-03-2022",
"shipping": "200"
},
"Biller": {
"phone": "989797",
"fax": "998463",
"email": "[email protected]",
"web": "www.doc1.com",
"address": {
"company": "Organization 1",
"street": "Street 1",
"city": "City 1",
"zip": "123456"
}
},
"Recepient": {
"name": "recepeint 1",
"address": {
"street": "testveien 3 ",
"city": "City 1",
"zipcode": "0555",
"country": "Country 1"
}
},
"Product": [
{
"quantity": 1,
"description": "item 1",
"unitPrice": 45,
"totalPrice": 867
},
{
"quantity": 2,
"description": "item 2",
"unitPrice": 123,
"totalPrice": 3464
},
{
"quantity": 3,
"description": "item 3",
"unitPrice": 323,
"totalPrice": 6564
}
]
},
"footer": {
"phone": "phone123",
"fax": "fax123",
"email": "[email protected]",
"web": "www.123.com"
}
}
]
}
添加一个迭代器来处理多个输出文件
很明显,PDF4me动作将根据数据生成多个文件。为了处理这个问题,我们需要一个Integromat Iterator模块来处理下一个动作的每个文件。
添加Dropbox上传模块来保存输出文件
用上传文件的动作创建一个Dropbox模块,将所有文件保存到所需的文件夹中。
我们方案的输出应该与下面的文件类似。
通过PDF4me 开发者订阅,你可以在Integromat中创建场景,能够以低成本自动生成具有动态数据的大量文档。该订阅确保你的自动化永远不会因为API调用数量的短缺而停止。