ByteScout Cloud API Server - DOC To PDF API - JavaScript - Convert DOC To PDF From Uploaded File (Node.js) - Async API - ByteScout

ByteScout Cloud API Server – DOC To PDF API – JavaScript – Convert DOC To PDF From Uploaded File (Node.js) – Async API

  • Home
  • /
  • Articles
  • /
  • ByteScout Cloud API Server – DOC To PDF API – JavaScript – Convert DOC To PDF From Uploaded File (Node.js) – Async API

How to convert DOC to PDF from uploaded file (node for DOC to PDF API in JavaScript using ByteScout Cloud API Server

Learn in simple ways: How to convert DOC to PDF from uploaded file (node for DOC to PDF API in JavaScript

The sample source codes on this page will show you how to create DOC to PDF API in JavaScript. ByteScout Cloud API Server was designed to assist DOC to PDF API in JavaScript. ByteScout Cloud API Server is API server that is ready to use and can be installed and deployed in less than 30 minutes on your own Windows server or server in a cloud. It can save data and files on your local server-based file storage or in Amazon AWS S3 storage. Data is processed solely on the API server and is powered by ByteScout engine, no cloud services or Internet connection is required for data processing..

If you want to speed up the application’s code writing then JavaScript code samples for JavaScript developers help to implement using ByteScout Cloud API Server. Follow the tutorial and copy – paste code for JavaScript into your project’s code editor. Check JavaScript sample code examples to see if they respond to your needs and requirements for the project.

Our website provides free trial version of ByteScout Cloud API Server that gives source code samples to assist with your JavaScript project.

On-demand (REST Web API) version:
 Web API (on-demand version)

On-premise offline SDK for Windows:
 60 Day Free Trial (on-premise)

app.js
      
/*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. 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 DOC or DOCX file const SourceFile = "./sample.docx"; // Destination PDF file name const DestinationFile = "./result.pdf"; // 1. RETRIEVE PRESIGNED URL TO UPLOAD FILE. getPresignedUrl(SourceFile) .then(([uploadUrl, uploadedFileUrl]) => { // 2. UPLOAD THE FILE TO CLOUD. uploadFile(SourceFile, uploadUrl) .then(() => { // 3. CONVERT UPLOADED DOC (DOCX) FILE TO PDF convertDocToPdf(uploadedFileUrl, DestinationFile); }) .catch(e => { console.log(e); }); }) .catch(e => { console.log(e); }); function getPresignedUrl(localFile) { return new Promise(resolve => { // Prepare request to `Get Presigned URL` API endpoint let queryPath = `/file/upload/get-presigned-url?contenttype=application/octet-stream&name=${path.basename(SourceFile)}`; let reqOptions = { host: "localhost", path: encodeURI(queryPath) }; // 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(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 convertDocToPdf(uploadedFileUrl, destinationFile) { // Prepare URL for `DOC To PDF` API call let queryPath = `/pdf/convert/from/doc?name=${path.basename(destinationFile)}&url=${uploadedFileUrl}&async=True`; let reqOptions = { host: "localhost", path: encodeURI(queryPath), method: "GET" }; // 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) { console.log(`Job #${data.jobId} has been created!`); checkIfJobIsCompleted(data.jobId, data.url, destinationFile); } else { // Service reported error console.log("convertDocToPdf(): " + data.message); } }); }) .on("error", (e) => { // Request error console.log("convertDocToPdf(): " + e); }); } function checkIfJobIsCompleted(jobId, resultFileUrl, destinationFile) { let queryPath = `/job/check?jobid=${jobId}`; let reqOptions = { host: "localhost", 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, destinationFile);}, 3000); } else if (data.status == "success") { // 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}".`); } }) }); }

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

package.json
      
{ "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" } }

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

VIDEO

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

Tutorials:

prev
next