SplitPdfFromUrl.js
var https = require("https"); var path = require("path"); var fs = require("fs"); // Use "npm install request" command to install. var request = require("request"); // The authentication key (API Key). // Get your own by registering at https://app.pdf.co/documentation/api const API_KEY = "***********************************"; // Source PDF file to split const SourceFileUrl = "https://s3-us-west-2.amazonaws.com/bytescout-com/files/demo-files/cloud-api/pdf-split/sample.pdf"; // Comma-separated list of page numbers (or ranges) to process. Example: '1,3-5,7-'. const Pages = "1-2,3-"; // Prepare request to `Split PDF` API endpoint var queryPath = `/v1/pdf/split?pages=${Pages}&url=${SourceFileUrl}&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.error(e); }); function checkIfJobIsCompleted(jobId, resultFileUrlJson) { 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, resultFileUrlJson)} , 2000); } else if (data.Status == "Finished") { request({ method: 'GET', uri: resultFileUrlJson, gzip: true }, function (error, response, body) { //* workaround for issue with non supoprted firstchar code var firstCharCode = body.charCodeAt(0); if (firstCharCode == 65279) { body = body.substring(1); } // Parse JSON response let respJsonFileArray = JSON.parse(body); let part = 1; respJsonFileArray.forEach((url) => { var localFileName = `./part${part}.png`; var file = fs.createWriteStream(localFileName); https.get(url, (response2) => { response2.pipe(file) .on("close", () => { console.log(`Generated PDF file saved as "${localFileName} file."`); }); }); part++; }, this); }); } else { console.log(`Operation ended with status: "${data.Status}".`); } }) }); }
Click here to get your Free Trial version of the SDK
IMPORTANT:
Cloud API is deprecated and was replaced with more powerful and secure www.PDF.co Web API
CLICK HERE
TO LEARN MORE
ABOUT NEW
www.PDF.co
w/ Web API
On-Premise API Server
Cloud API Server