-
Notifications
You must be signed in to change notification settings - Fork 0
/
campaigning.js
67 lines (57 loc) · 2.2 KB
/
campaigning.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var PizZip = require('pizzip');
var Docxtemplater = require('docxtemplater');
var express = require('express');
var bodyParser =require('body-parser');
var app = express();
var urlencodedParser = bodyParser.urlencoded({ extended: true});
var fs = require('fs');
var path = require('path');
var urlencodedParser = bodyParser.urlencoded({ extended: true});
module.exports = {
generateLetterIndividual: function generateLetterIndividual()
{
var content = fs.readFileSync(path.resolve(__dirname, './LetterTemplate/CAMPAIGNING_TEMPLATE.docx'), 'binary');
var zip = new PizZip(content);
var docx=new Docxtemplater();
var json = fs.readFileSync('details.json').toString();
var jsondata = JSON.parse(json);
try{
docx.loadZip(zip);
docx.setData(
{
designation:jsondata.designation,
department:jsondata.department,
date:jsondata.date,
subject: jsondata.subject,
respects: jsondata.respects,
team_name: jsondata.team_name,
event_name:jsondata.event_name,
fromdate:jsondata.fromdate,
todate:jsondata.todate,
start_hour:jsondata.start_hour,
start_min:jsondata.start_min,
start_meridian:jsondata.start_meridian,
end_hour:jsondata.end_hour,
end_min:jsondata.end_min,
end_meridian:jsondata.end_meridian,
letter_body:jsondata.letter_body,
where:jsondata.where
}
);
docx.render(); //this will generate the template.
var buffer= docx.getZip().generate({type:"nodebuffer"});
//timestamp for the output filename
var currentDate = new Date();
var timeStamp = currentDate.getTime();
var filename = 'FINAL_CAMPAIGNING';
fs.writeFileSync(`./LetterGenerated/${filename}.docx`,buffer);
console.log('Letter Generated.');
docx.render();
buffer = docx.getZip().generate({type:"nodebuffer"});
}
catch(error)
{
errorHandler(error);
}
}
};