Cloud API - PDF Merging API - JavaScript - Merge PDF Documents From URLs (Node.js) - Async API - ByteScout

Cloud API – PDF Merging API – JavaScript – Merge PDF Documents From URLs (Node.js) – Async API

  • Home
  • /
  • Articles
  • /
  • Cloud API – PDF Merging API – JavaScript – Merge PDF Documents From URLs (Node.js) – Async API

Cloud API – PDF Merging API – JavaScript – Merge PDF Documents From URLs (Node.js) – Async API

MergePdfDocumentsFromUrls.js

[javascript]
var https = require(“https”);
var path = require(“path”);
var fs = require(“fs”);

// The authentication key (API Key).
// Get your own by registering at https://app.pdf.co/documentation/api
const API_KEY = “***********************************”;

// Direct URLs of PDF files to merge
const SourceFiles = [
“https://s3-us-west-2.amazonaws.com/bytescout-com/files/demo-files/cloud-api/pdf-merge/sample1.pdf”,
“https://s3-us-west-2.amazonaws.com/bytescout-com/files/demo-files/cloud-api/pdf-merge/sample2.pdf”
];
// Destination PDF file name
const DestinationFile = “./result.pdf”;

// Prepare request to `Merge PDF` API endpoint
var queryPath = `/v1/pdf/merge?name=${path.basename(DestinationFile)}&url=${SourceFiles.join(“,”)}&async=True`;
var reqOptions = {
host: “api.pdf.co”,
path: encodeURI(queryPath),
headers: {
“x-api-key”: API_KEY
}
};
// Send request
https.get(reqOptions, (response) => {
response.on(“data”, (d) => {
// Parse JSON response
var data = JSON.parse(d);
if (data.error == false) {
checkIfJobIsCompleted(data.jobId, data.url);
}
else {
// Service reported error
console.log(data.message);
}
});
}).on(“error”, (e) => {
// Request error
console.log(e);
});

function checkIfJobIsCompleted(jobId, resultFileUrl) {
let queryPath = `/v1/job/check?jobid=${jobId}`;
let reqOptions = {
host: “api.pdf.co”,
path: encodeURI(queryPath),
method: “GET”,
headers: { “x-api-key”: API_KEY }
};

https.get(reqOptions, (response) => {
response.on(“data”, (d) => {
response.setEncoding(“utf8”);
// Parse JSON response
let data = JSON.parse(d);
if (data.Status == “InProgress”) {
// Check again after 2 seconds
setTimeout(function(){ checkIfJobIsCompleted(jobId, resultFileUrl);}, 2000);
}
else if (data.Status == “Finished”) {
// Download PDF file
var file = fs.createWriteStream(DestinationFile);
https.get(resultFileUrl, (response2) => {
response2.pipe(file)
.on(“close”, () => {
console.log(`Generated PDF file saved as “${DestinationFile}” file.`);
});
});
}
else {
console.log(`Operation ended with status: “${data.Status}”.`);
}
})
});
}
[/javascript]


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next