-
Notifications
You must be signed in to change notification settings - Fork 0
/
OperationMerge.js
48 lines (45 loc) · 1.75 KB
/
OperationMerge.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
const PDFToolsSdk = require('@adobe/documentservices-pdftools-node-sdk');
module.exports = async function mergeFile(filesToBeMerged, mergedFileName){
let out;
try {
// Initial setup, create credentials instance.
const credentials = PDFToolsSdk.Credentials
.serviceAccountCredentialsBuilder()
.fromFile("pdftools-api-credentials.json")
.build();
// Create an ExecutionContext using credentials and create a new operation instance.
const executionContext = PDFToolsSdk.ExecutionContext.create(credentials),
combineFilesOperation = PDFToolsSdk.CombineFiles.Operation.createNew();
// Set operation input from a source file.
for(let i=0; i< filesToBeMerged.length; i++){
combineFilesOperation.addInput(PDFToolsSdk.FileRef.createFromLocalFile(`uploads/${filesToBeMerged[i]}`))
}
// Execute the operation and Save the result to the specified location.
out = combineFilesOperation.execute(executionContext)
.then(result => {
result.saveAsFile(`uploads/${mergedFileName}.pdf`)
return ({
success: true,
fileName: `${mergedFileName}.pdf`
})
}).catch(err => {
if (err instanceof PDFToolsSdk.Error.ServiceApiError
|| err instanceof PDFToolsSdk.Error.ServiceUsageError) {
console.log('Exception encountered while executing operation', err);
} else {
console.log('Exception encountered while executing operation', err);
}
return ({
success: false,
msg: "Server err ocurred"
})
});
} catch (err) {
console.log('Exception encountered while executing operation', err);
return ({
success: false,
msg: "Server error occured"
})
}
return out
}