ByteScout Cloud API Server: the ready to deploy Web API Server that can be deployed in less than thirty minutes into your own in-house Windows server (no Internet connnection is required to process data!) or into private cloud server. Can store data on in-house local server based storage or in Amazon AWS S3 bucket. Processing data solely on the server using built-in ByteScout powered engine, no cloud services are used to process your data!.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
/*jshint esversion: 6 */ // Please NOTE: In this sample we're assuming Cloud Api Server is hosted at "https://localhost". // If it's not then please replace this with with your hosting url. const ApiServerHost = "localhost"; const ApiServerHostWithProtocol = `https://${ApiServerHost}`; var https = require("https"); var path = require("path"); var fs = require("fs"); // `request` module is required for file upload. // Use "npm install request" command to install. var request = require("request"); // Source PDF file const SourceFile = "./sample.pdf"; // Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'. const Pages = ""; // PDF document password. Leave empty for unprotected documents. const Password = ""; // Destination CSV file name const DestinationFile = "./result.csv"; const IsAsync = 'true'; // Prepare request uri for `PDF To CSV` API call var query = `${ApiServerHostWithProtocol}/pdf/convert/to/csv`; let reqOptions = { // url to the endpoint uri: query, // formdata that contains a file and the config formData: { // reading source file data file: fs.createReadStream(SourceFile), // setting all the options in the `data` parameter as json string data: `{async: ${IsAsync}, pages: '${Pages}', password: '${Password}' }` }, }; // Send request request.post(reqOptions, function (error, response, body) { if (error) { return console.error("Error: ", error + body); } console.log("The response received from API Server was: " + body); // Parse JSON response let data = JSON.parse(body); console.log(`Background Job #${data.jobId} has been created!`); checkIfJobIsCompleted(data.jobId, data.url); }); function checkIfJobIsCompleted(jobId, resultFileUrl) { console.log(`Checking the status of the job #${jobId}..`); let queryPath = `/job/check?jobid=${jobId}`; let reqOptions = { host: ApiServerHost, path: encodeURI(queryPath), method: "GET" }; https.get(reqOptions, (response) => { response.on("data", (d) => { response.setEncoding("utf8"); // Parse JSON response let data = JSON.parse(d); console.log(`Checking Job #${jobId}, Status: ${data.status}, Time: ${new Date().toLocaleString()}`); if (data.status == "working") { // Check again after 3 seconds setTimeout(function(){ checkIfJobIsCompleted(jobId, resultFileUrl); }, 3000); } else if (data.status == "success") { // Download CSV file var file = fs.createWriteStream(DestinationFile); https.get(resultFileUrl, (response2) => { response2.pipe(file) .on("close", () => { console.log(`Generated CSV file saved as "${DestinationFile}" file.`); }); }); } else { console.log(`Operation ended with status: "${data.status}".`); } }) }); }
{ "name": "test", "version": "1.0.0", "description": "PDF.co", "main": "app.js", "scripts": {}, "keywords": [ "pdf.co", "web", "api", "bytescout", "api" ], "author": "ByteScout & PDF.co", "license": "ISC", "dependencies": { "request": "^2.88.2" } }
See also:
Get Your API Key
See also: