PDF.co Web API – Barcode Generator API – JavaScript – Generate Barcode (Node.js) – Async API

  • Home
  • /
  • Articles
  • /
  • PDF.co Web API – Barcode Generator API – JavaScript – Generate Barcode (Node.js) – Async API

PDF.co Web API – Barcode Generator API – JavaScript – Generate Barcode (Node.js) – Async API

GenerateBarcode.js

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/documentation/api
const API_KEY = "***********************************";


// Result image file name
const DestinationFile = "./barcode.png";
// Barcode type. See valid barcode types in the documentation https://app.pdf.co/documentation/api/1.0/barcode/generate.html
const BarcodeType = "Code128";
// Barcode value
const BarcodeValue = "qweasd123456";


// Prepare request to `Barcode Generator` API endpoint
var queryPath = `/v1/barcode/generate?name=${path.basename(DestinationFile)}&type=${BarcodeType}&value=${BarcodeValue}&async=True`;
var reqOptions = {
    host: "api.pdf.co",
    path: encodeURI(queryPath),
    headers: {
        "x-api-key": API_KEY
    }
};
// Send request
https.get(reqOptions, (response) => {
    response.on("data", (d) => {
        // Parse JSON response
        var data = JSON.parse(d);
        
        if (data.error == false) {
            checkIfJobIsCompleted(data.jobId, data.url);
        }
        else {
            // Service reported error
            console.log(data.message);
        }
    });
}).on("error", (e) => {
    // Request error
    console.error(e);
});


function checkIfJobIsCompleted(jobId, resultFileUrl) {
    let queryPath = `/v1/job/check?jobid=${jobId}`;
    let reqOptions = {
        host: "api.pdf.co",
        path: encodeURI(queryPath),
        method: "GET",
        headers: { "x-api-key": API_KEY }
    };

    https.get(reqOptions, (response) => {
        response.on("data", (d) => {
            response.setEncoding("utf8");
            // Parse JSON response
            let data = JSON.parse(d);
            if (data.Status == "InProgress") {
                // Check again after 2 seconds
				setTimeout(function(){ checkIfJobIsCompleted(jobId, resultFileUrl);}, 2000);
            }
            else if (data.Status == "Finished") {
                // Download image file
                var file = fs.createWriteStream(DestinationFile);
                https.get(resultFileUrl, (response2) => {
                    response2.pipe(file)
                        .on("close", () => {
                            console.log(`Generated image file saved as "${DestinationFile}" file.`);
                        });
                });
            }
            else {
                console.log(`Operation ended with status: "${data.Status}".`);
            }
        })
    });
}


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next