#IgnoreWarnings:32
#Event: Finished
Sub Class_Globals
Private fn As String
Private BANano As BANano 'ignore
Private mcallback As Object
Private eventName As String
Private tags As Map
Private ffn As String
End Sub
Public Sub Initialize(mcb As Object, event As String, tmpFile As String, target As String)
fn = tmpFile
mcallback = mcb
eventName = event
tags.Initialize
ffn = target
End Sub
Sub SetField(key As String, value As Object)
tags.Put(key,value)
End Sub
Sub BuildWait
Dim PizZipUtils As BANanoObject
PizZipUtils.Initialize("PizZipUtils")
'
Dim error, content As Object
Dim cb As BANanoObject = BANano.CallBack(Me, "generate", Array(error, content))
PizZipUtils.RunMethod("getBinaryContent", Array(fn, cb))
End Sub
Private Sub generate(error As Object, content As Object) 'ignore
If BANano.IsNull(error) = False Then
BANano.throw(error)
Return
End If
'start processing
Dim zip As BANanoObject
zip.Initialize2("PizZip", content)
'
Dim options As Map = CreateMap()
options.Put("paragraphLoop", True)
options.Put("linebreaks", True)
'
Dim doc As BANanoObject
doc.Initialize2("Docxtemplater", Array(zip, options))
'
doc.RunMethod("render", tags)
'
Dim blobOptions As Map = CreateMap()
blobOptions.Put("type", "blob")
blobOptions.Put("mimeType", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
blobOptions.Put("compression", "DEFLATE")
'
Dim blob As BANanoObject = doc.RunMethod("getZip", Null).RunMethod("generate", blobOptions)
BANano.RunJavascriptMethod("saveAs", Array(blob, ffn))
If SubExists(mcallback, $"${eventName}_finished"$) Then
CallSub(mcallback, $"${eventName}_finished"$)
Else
BANano.Console.Warn($"SithasoDocxTemplator: '${eventName}_finished' event does not exist!"$)
End If
End Sub