-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcut.js
More file actions
76 lines (65 loc) · 2.08 KB
/
Copy pathcut.js
File metadata and controls
76 lines (65 loc) · 2.08 KB
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
68
69
70
71
72
73
74
75
const fs = require('fs');
const scissors = require('scissors');
const async = require('async');
const pdf = scissors('./files/CCI.pdf');
const allEmails = [];
const search = (arr, el) => {
let index = -1;
arr.forEach((e, i) => (e.to === el ? index = i : ''))
return index;
}
const add = (arr, el, i, tipo) => {
const index = search(arr, el);
if (index >= 0) arr[index].pages.push(i + 1);
else {
arr.push({
from: 'pet-informatica',
to: el,
tipo: tipo,
pages: [i + 1]
});
}
}
const cut = (email, cb) => {
const cuted = pdf.pages(...email.pages);
const output = `./outputs/cut-${email.tipo}-${email.to}.pdf`;
const stream = fs.createWriteStream(output, { autoClose: false });
cuted.pdfStream()
.pipe(stream)
.on('finish', () => {
email.doc = output;
allEmails.push(email);
stream.close();
cb(null, output);
}).on('error', e => cb(e));
}
fs.readFile('./files/emails.csv', 'utf8', (err, contents) => {
if (err) throw err;
console.log("Organizando objeto de emails de acordo com a entrada CSV.");
const lines = contents.split('\n');
const alunos = [], delegados = [], instituicoes = [];
lines.forEach((line, i) => {
const arr = line.split(',');
const aluno = arr[0];
const delegado = arr[1];
const instituicao = arr[2];
add(alunos, aluno, i, 'aluno');
add(delegados, delegado, i, 'delegado');
add(instituicoes, instituicao, i, 'instituicao');
});
console.log("Cortando PDF's...");
let count = 1;
const all = alunos.concat(delegados).concat(instituicoes);
async.eachSeries(all, (email, cb) => {
cut(email, (e, output) => {
console.log(`Cortado: ${output} (${count++} de ${all.length})`);
cb(e)
});
}, e => {
if (e) console.log(e);
console.log("Done!!");
console.log(allEmails);
const obj = JSON.stringify(allEmails);
fs.writeFile('./emails.json', obj);
});
});