-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsplitPDF.js
34 lines (31 loc) · 845 Bytes
/
splitPDF.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
const { degrees } = require("pdf-lib");
const { EmptyPDFDocument } = require("./createFileDoc");
const createArray = (start, stop) => {
const res = [];
for (let i = start; i <= stop; i++) {
res.push(i - 1);
}
return res;
};
const splitPDF = async (pdfDoc, range, degree = 0) => {
if (range[0] === 0) {
range = [1, range[1]];
}
if (range[1] === 0) {
range = [range[0], 1];
}
if (range[1] < range[0]) {
range = [range[1], range[0]];
}
if (range[1] > pdfDoc.getPageCount()) {
range = [range[0], pdfDoc.getPageCount()];
}
const splittedPDF = await EmptyPDFDocument();
const pages = await splittedPDF.copyPages(pdfDoc, createArray(...range));
pages.forEach((page) => {
page.setRotation(degrees(degree));
splittedPDF.addPage(page);
});
return splittedPDF;
};
module.exports = splitPDF;