Cloud API simplifies for all developers the coding process to convert PDF to JSON from an uploaded file in JavaScript. This powerful Rest API is also teeming with functionalities that make complex tasks like automatic data extraction, document manipulation, and PDF division or integration easy and fast. Amazingly, it also has the penchant for generating and reading barcodes from PDFs, scanned documents, and images, as it has a built-in OCR and a superb image recognition capability.
Save a lot of time and effort by simply taking the code below instead of writing and testing one of your own to use in your application. Simply copy & paste it into your ongoing JavaScript project and run your app! This JS sample source code will take care of the implementation of the PDF to JSON Web API conversion.
Go ahead and download the FREE ByteScout trial version from our website. We also included easy-to-understand programming tutorials along with source code samples.
/*jshint esversion: 6 */ // (!) If you are getting "(403) Forbidden" error please ensure you have set the correct API_KEY var https = require("https"); var path = require("path"); var fs = require("fs"); var url = require("url"); // `request` module is required for file upload. // Use "npm install request" command to install. var request = require("request"); // The authentication key (API Key). // Get your own by registering at https://secure.bytescout.com/users/sign_up const API_KEY = "***********************************"; // 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 JSON file name const DestinationFile = "./result.json"; // 1. RETRIEVE PRESIGNED URL TO UPLOAD FILE. getPresignedUrl(API_KEY, SourceFile) .then(([uploadUrl, uploadedFileUrl]) => { // 2. UPLOAD THE FILE TO CLOUD. uploadFile(API_KEY, SourceFile, uploadUrl) .then(() => { // 3. CONVERT UPLOADED PDF FILE TO JSON convertPdfToJson(API_KEY, uploadedFileUrl, Password, Pages, DestinationFile); }) .catch(e => { console.log(e); }); }) .catch(e => { console.log(e); }); function getPresignedUrl(apiKey, localFile) { return new Promise(resolve => { // Prepare request to `Get Presigned URL` API endpoint let queryPath = `/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name=${path.basename(SourceFile)}`; let reqOptions = { host: "api.pdf.co", path: encodeURI(queryPath), headers: { "x-api-key": API_KEY } }; // Send request https.get(reqOptions, (response) => { response.on("data", (d) => { let data = JSON.parse(d); if (data.error == false) { // Return presigned url we received resolve([data.presignedUrl, data.url]); } else { // Service reported error console.log("getPresignedUrl(): " + data.message); } }); }) .on("error", (e) => { // Request error console.log("getPresignedUrl(): " + e); }); }); } function uploadFile(apiKey, localFile, uploadUrl) { return new Promise(resolve => { fs.readFile(SourceFile, (err, data) => { request({ method: "PUT", url: uploadUrl, body: data, headers: { "Content-Type": "application/octet-stream" } }, (err, res, body) => { if (!err) { resolve(); } else { console.log("uploadFile() request error: " + e); } }); }); }); } function convertPdfToJson(apiKey, uploadedFileUrl, password, pages, destinationFile) { // Prepare request to `PDF To JSON` API endpoint var queryPath = `/v1/pdf/convert/to/json?name=${path.basename(destinationFile)}&password=${password}&pages=${pages}&url=${uploadedFileUrl}`; let reqOptions = { host: "api.pdf.co", path: encodeURI(queryPath), method: "GET", headers: { "x-api-key": API_KEY } }; // Send request https.get(reqOptions, (response) => { response.on("data", (d) => { response.setEncoding("utf8"); // Parse JSON response let data = JSON.parse(d); if (data.error == false) { // Download JSON file var file = fs.createWriteStream(destinationFile); https.get(data.url, (response2) => { response2.pipe(file) .on("close", () => { console.log(`Generated JSON file saved as "${destinationFile}" file.`); }); }); } else { // Service reported error console.log("readBarcodes(): " + data.message); } }); }) .on("error", (e) => { // Request error console.log("readBarcodes(): " + e); }); }
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