text: //*******************************************************************************************//
  //                                                                                           //
  // Download Free Evaluation Version From: https://bytescout.com/download/web-installer       //
  //                                                                                           //
  // Also available as Web API! Get Your Free API Key: https://app.pdf.co/signup               //
  //                                                                                           //
  // Copyright © 2017-2020 ByteScout, Inc. All rights reserved.                                //
  // https://www.bytescout.com                                                                 //
  // https://pdf.co                                                                            //
  //                                                                                           //
  //*******************************************************************************************//
  
  
  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
  const API_KEY = "***********************************";
  
  
  // Direct URL of source PDF file.
  // You can also upload your own file into PDF.co and use it as url. Check "Upload File" samples for code snippets: https://github.com/bytescout/pdf-co-api-samples/tree/master/File%20Upload/    
  const SourceFileUrl = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-to-image/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 TIFF file name
  const DestinationFile = "./result.tif";
  
  
  // Prepare request to `PDF To TIFF` API endpoint
  var queryPath = `/v1/pdf/convert/to/tiff`;
  
  // JSON payload for api request
  var jsonPayload = JSON.stringify({
      name: path.basename(DestinationFile), password: Password, pages: Pages, url: SourceFileUrl, async: true
  });
  
  var reqOptions = {
      host: "api.pdf.co",
      method: "POST",
      path: queryPath,
      headers: {
          "x-api-key": API_KEY,
          "Content-Type": "application/json",
          "Content-Length": Buffer.byteLength(jsonPayload, 'utf8')
      }
  };
  // Send request
  var postRequest = https.request(reqOptions, (response) => {
      response.on("data", (d) => {
          // Parse JSON response
          var data = JSON.parse(d);
          if (data.error == false) {
              console.log(`Job #${data.jobId} has been created!`);
              checkIfJobIsCompleted(data.jobId, data.url);
          }
          else {
              // Service reported error
              console.log(data.message);
          }
      });
  }).on("error", (e) => {
      // Request error
      console.log(e);
  });
  
  // Write request data
  postRequest.write(jsonPayload);
  postRequest.end();
  
  
  function checkIfJobIsCompleted(jobId, resultFileUrl) {
      let queryPath = `/v1/job/check`;
  
      // JSON payload for api request
      let jsonPayload = JSON.stringify({
          jobid: jobId
      });
  
      let reqOptions = {
          host: "api.pdf.co",
          path: queryPath,
          method: "POST",
          headers: {
              "x-api-key": API_KEY,
              "Content-Type": "application/json",
              "Content-Length": Buffer.byteLength(jsonPayload, 'utf8')
          }
      };
  
      // Send request
      var postRequest = https.request(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 TIFF file
                  var file = fs.createWriteStream(DestinationFile);
                  https.get(resultFileUrl, (response2) => {
                      response2.pipe(file)
                          .on("close", () => {
                              console.log(`Generated TIFF file saved as "${DestinationFile}" file.`);
                          });
                  });
              }
              else {
                  console.log(`Operation ended with status: "${data.status}".`);
              }
          })
      });
  
      // Write request data
      postRequest.write(jsonPayload);
      postRequest.end();
  }
  