Cloud API – HTML To PDF – JavaScript – Generate PDF Invoice From HTML Template (Node.js)

  • Home
  • /
  • Articles
  • /
  • Cloud API – HTML To PDF – JavaScript – Generate PDF Invoice From HTML Template (Node.js)

Cloud API – HTML To PDF – JavaScript – Generate PDF Invoice From HTML Template (Node.js)

GeneratePdfInvoiceFromHtmlTemplate.js

// (!) 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");


// The authentication key (API Key).
// Get your own by registering at https://secure.bytescout.com/users/sign_up
const API_KEY = "***********************************";


// HTML template
const template = "./invoice_template.html";
// Data to fill the template
const templateData = "./invoice_data.json";
// Destination PDF file name
const DestinationFile = "./result.pdf";


// Prepare request to `HTML To PDF` API endpoint
var queryPath = `/v1/pdf/convert/from/html?name=${path.basename(DestinationFile)}`;
var reqOptions = {
    host: "bytescout.io",
    path: encodeURI(queryPath),
    method: "POST",
    headers: {
        "x-api-key": API_KEY,
        "Content-Type": "application/json"
    }
};
var requestBody = JSON.stringify({
    "html": fs.readFileSync(template, "utf8"),
    "templateData": fs.readFileSync(templateData, "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) {
            // Download PDF file
            var file = fs.createWriteStream(DestinationFile);
            https.get(data.url, (response2) => {
                response2.pipe(file)
                .on("close", () => {
                    console.log(`Generated PDF file saved as "${DestinationFile}" file.`);
                });
            });
        }
        else {
            // Service reported error
            console.log(data.message);
        }
    });
}).on("error", (e) => {
    // Request error
    console.log(e);
});
// Write request data
postRequest.write(requestBody);
postRequest.end();


  Click here to get your Free Trial version of the SDK

prev
next